@@ -197,11 +197,16 @@ const ⊖ = *
197
197
@inline Base.:\ (a:: A ,b:: B ) where {A<: TensorAlgebra ,B<: TensorAlgebra } = Base. inv (a)* b
198
198
@inline Base.:\ (a:: UniformScaling ,b:: B ) where B<: TensorAlgebra = Base. inv (Manifold (b)(a))* b
199
199
@inline Base.:\ (a:: A ,b:: UniformScaling ) where A<: TensorAlgebra = Base. inv (a)* Manifold (a)(b)
200
+ @inline ⊗ (a:: A ,b:: B ) where {A<: TensorAlgebra ,B<: Real } = a* b
201
+ @inline ⊗ (a:: A ,b:: B ) where {A<: TensorAlgebra ,B<: Complex } = a* b
202
+ @inline ⊗ (a:: A ,b:: B ) where {A<: Real ,B<: TensorAlgebra } = a* b
203
+ @inline ⊗ (a:: A ,b:: B ) where {A<: Complex ,B<: TensorAlgebra } = a* b
204
+ Base.:∘ (a:: A ,b:: B ) where {A<: TensorAlgebra ,B<: TensorAlgebra } = contraction (a,b)
200
205
201
206
for op ∈ (:(Base.:+ ),:(Base.:* ))
202
207
@eval $ op (t:: T ) where T<: TensorAlgebra = t
203
208
end
204
- for op ∈ (:⊗ ,: ⊙ ,:⊠ ,:¬ ,:⋆ ,:clifford ,:basis ,:complementleft ,:complementlefthodge )
209
+ for op ∈ (:⊙ ,:⊠ ,:¬ ,:⋆ ,:clifford ,:basis ,:complementleft ,:complementlefthodge )
205
210
@eval function $ op end
206
211
end
207
212
for op ∈ (:scalar ,:involute ,:even )
@@ -293,6 +298,7 @@ signbit(x::Symbol) = false
293
298
signbit (x:: Expr ) = x. head == :call && x. args[1 ] == :-
294
299
- (x) = Base.:- (x)
295
300
- (x:: Symbol ) = :(- $ x)
301
+ @inline dot (x,y) = LinearAlgebra. dot (x,y)
296
302
297
303
for op ∈ (:conj ,:inv ,:sqrt ,:abs ,:exp ,:expm1 ,:log ,:log1p ,:sin ,:cos ,:sinh ,:cosh ,:signbit )
298
304
@eval @inline $ op (z) = Base.$ op (z)
0 commit comments