236236inner (a:: MultiValue{S,Ta,N} , b:: MultiValue{S,Tb,N} ) where {S,Ta,Tb,N} = contracted_product (Val (N),a,b)
237237
238238@generated function inner (a:: AbstractSymTensorValue{D,Ta} , b:: AbstractSymTensorValue{D,Tb} ) where {D,Ta,Tb}
239- iszero (D) && return :(zero ($ (promote_type ( Ta, Tb))))
239+ iszero (D) && return :(zero ($ (Base . promote_op ( * , Ta,Tb))))
240240 str = " "
241241 for i in 1 : D
242242 str *= " + a[$i ,$i ]*b[$i ,$i ]"
@@ -252,7 +252,7 @@ inner(a::MultiValue{S,Ta,N}, b::MultiValue{S,Tb,N}) where {S,Ta,Tb,N} = contract
252252end
253253
254254@generated function inner (a:: SymFourthOrderTensorValue{D,Ta} , b:: SymFourthOrderTensorValue{D,Tb} ) where {D,Ta,Tb}
255- iszero (D) && return :(zero ($ (promote_type ( Ta, Tb))))
255+ iszero (D) && return :(zero ($ (Base . promote_op ( * , Ta,Tb))))
256256
257257 S = Tuple{D,D,D,D}
258258 VInt = change_eltype (a, Int)
@@ -271,15 +271,15 @@ end
271271end
272272
273273function inner (a:: SkewSymTensorValue{D,Ta} , b:: SkewSymTensorValue{D,Tb} ) where {D,Ta,Tb}
274- iszero (D) && return zero (promote_type ( Ta, Tb))
274+ iszero (D) && return zero (Base . promote_op ( * , Ta,Tb))
275275 2 * inner (VectorValue (a. data), VectorValue (b. data))
276276end
277277
278278function inner (a:: SkewSymTensorValue{D,Ta} , b:: AbstractSymTensorValue{D,Tb} ) where {D,Ta,Tb}
279- zero (promote_type ( Ta,Tb))
279+ zero (Base . promote_op ( * , Ta,Tb))
280280end
281281function inner (a:: AbstractSymTensorValue{D,Tb} , b:: SkewSymTensorValue{D,Ta} ) where {D,Ta,Tb}
282- zero (promote_type ( Ta,Tb))
282+ zero (Base . promote_op ( * , Ta,Tb))
283283end
284284
285285# TODO These two methods make no sense and shold be removed
342342
343343# c_ijkl = a_ijmn*b_mnkl (general case)
344344@generated function double_contraction (a:: SymFourthOrderTensorValue{D,Ta} , b:: SymFourthOrderTensorValue{D,Tb} ) where {D,Ta,Tb}
345- iszero (D) && return :(SymFourthOrderTensorValue {0,$(promote_type( Ta, Tb))} ())
345+ iszero (D) && return :(SymFourthOrderTensorValue {0,$(Base.promote_op(*, Ta,Tb))} ())
346346
347347 str = " "
348348 for j in 1 : D
394394
395395# c_ij = a_ijkl*b_kl
396396@generated function double_contraction (a:: SymFourthOrderTensorValue{D,Ta} , b:: AbstractSymTensorValue{D,Tb} ) where {D,Ta,Tb}
397- iszero (D) && return :(zero (SymTensorValue{D,$ (promote_type ( Ta, Tb))}))
397+ iszero (D) && return :(zero (SymTensorValue{D,$ (Base . promote_op ( * , Ta,Tb))}))
398398 str = " "
399399 for i in 1 : D
400400 for j in i: D
415415
416416# c_ij = a_kl*b_klij
417417@generated function double_contraction (a:: AbstractSymTensorValue{D,Ta} , b:: SymFourthOrderTensorValue{D,Tb} ) where {D,Ta,Tb}
418- iszero (D) && return :(zero (SymTensorValue{D,$ (promote_type ( Ta, Tb))}))
418+ iszero (D) && return :(zero (SymTensorValue{D,$ (Base . promote_op ( * , Ta,Tb))}))
419419 str = " "
420420 for i in 1 : D
421421 for j in i: D
@@ -457,7 +457,7 @@ Given a square second order tensors `a` and `b`, return `b`ᵀ⋅`a`⋅`b`.
457457The type of the resulting value is (skew) symmetric stable w.r.t. `typeof(a)`.
458458"""
459459function congruent_prod (a:: MultiValue{Tuple{D,D},Ta} , b:: MultiValue{Tuple{D,D1},Tb} ) where {D,D1,Ta,Tb}
460- T = promote_type ( Ta, Tb)
460+ T = Base . promote_op ( * , Ta,Tb)
461461 V = _congruent_ret_type (a, D1)
462462 (iszero (D) || iszero (D1)) && return zero (V{T})
463463 V {T} (get_array (transpose (b) ⋅ a ⋅ b))
@@ -505,7 +505,7 @@ outer(a::MultiValue, b::MultiValue) = contracted_product(Val(0), a, b)
505505
506506# c_ijkl = a_ij*b_kl
507507@generated function outer (a:: AbstractSymTensorValue{D,Ta} , b:: AbstractSymTensorValue{D,Tb} ) where {D,Ta,Tb}
508- iszero (D) && return :(zero (SymFourthOrderTensorValue{D,$ (promote_type ( Ta, Tb))}))
508+ iszero (D) && return :(zero (SymFourthOrderTensorValue{D,$ (Base . promote_op ( * , Ta,Tb))}))
509509 str = " "
510510 for i in 1 : D
511511 for j in i: D
@@ -574,13 +574,13 @@ the specific functions above if possible), but is used as default generic implem
574574 Sr = tuple (Sa_keep... , Sb_keep... )
575575 Nr = length (Sr)
576576 Vstr = if Nr == 0
577- " promote_type( Ta,Tb)"
577+ " Base.promote_op(*, Ta,Tb)"
578578 elseif Nr == 1
579- " VectorValue{$(Sr[1 ]) ,promote_type( Ta,Tb)}"
579+ " VectorValue{$(Sr[1 ]) ,Base.promote_op(*, Ta,Tb)}"
580580 elseif Nr == 2
581- " TensorValue{$(Sr[1 ]) ,$(Sr[2 ]) ,promote_type( Ta,Tb)}"
581+ " TensorValue{$(Sr[1 ]) ,$(Sr[2 ]) ,Base.promote_op(*, Ta,Tb)}"
582582 else
583- " HighOrderTensorValue{$(Tuple{Sr... }) ,promote_type( Ta,Tb)}"
583+ " HighOrderTensorValue{$(Tuple{Sr... }) ,Base.promote_op(*, Ta,Tb)}"
584584 end
585585
586586 if (iszero (length (a)) || iszero (length (b)))
0 commit comments