@@ -80,6 +80,18 @@ change_eltype(::T,::Type{T2}) where {T<:ThirdOrderTensorValue,T2} = change_eltyp
80
80
zero (:: Type{<:ThirdOrderTensorValue{D1,D2,D3,T}} ) where {D1,D2,D3,T} = ThirdOrderTensorValue {D1,D2,D3,T} (tfill (zero (T),Val {D1*D2*D3} ()))
81
81
zero (:: ThirdOrderTensorValue{D1,D2,D3,T} ) where {D1,D2,D3,T} = zero (ThirdOrderTensorValue{D1,D2,D3,T})
82
82
83
+ @generated function rand (rng:: AbstractRNG ,
84
+ :: Random.SamplerType{<:ThirdOrderTensorValue{D1,D2,D3,T}} ) where {D1,D2,D3,T}
85
+ L= D1* D2* D3
86
+ quote
87
+ rand (rng, ThirdOrderTensorValue{D1,D2,D3,T,$ L})
88
+ end
89
+ end
90
+ function rand (rng:: AbstractRNG ,
91
+ :: Random.SamplerType{<:ThirdOrderTensorValue{D1,D2,D3,T,L}} ) where {D1,D2,D3,T,L}
92
+ return ThirdOrderTensorValue {D1,D2,D3,T,L} (Tuple (rand (rng, SVector{L,T})))
93
+ end
94
+
83
95
Mutable (:: Type{<:ThirdOrderTensorValue{D1,D2,D3,T}} ) where {D1,D2,D3,T} = MArray{Tuple{D1,D2,D3},T}
84
96
Mutable (:: ThirdOrderTensorValue{D1,D2,D3,T} ) where {D1,D2,D3,T} = Mutable (ThirdOrderTensorValue{D1,D2,D3,T})
85
97
mutable (a:: ThirdOrderTensorValue{D1,D2,D3} ) where {D1,D2,D3} = MArray {Tuple{D1,D2,D3}} (a. data)
0 commit comments