diff src/LazyTensors/LazyTensors.jl @ 1837:200971c71657 refactor/lazy_tensors/elementwise_ops

Refactor ElementwiseTensorOperation into TensorSum and use TensorNegation for handling subtraction
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 09 Jan 2025 21:46:01 +0100
parents 368999a2e243
children e1077273eda5
line wrap: on
line diff
--- a/src/LazyTensors/LazyTensors.jl	Thu Jan 09 15:32:47 2025 +0100
+++ b/src/LazyTensors/LazyTensors.jl	Thu Jan 09 21:46:01 2025 +0100
@@ -10,6 +10,7 @@
 export TensorTranspose
 export TensorComposition
 export TensorNegation
+export TensorSum
 export IdentityTensor
 export ScalingTensor
 export DiagonalTensor
@@ -36,9 +37,9 @@
 Base.:*(a::LazyTensor, args::Union{LazyTensor, AbstractArray}...) = foldr(*,(a,args...))
 
 # Addition and subtraction of lazy tensors
-Base.:+(ts::LazyTensor...) = ElementwiseTensorOperation{:+}(ts...)
+Base.:+(ts::LazyTensor...) = TensorSum(ts...)
 Base.:-(t::LazyTensor) = TensorNegation(t)
-Base.:-(s::LazyTensor, t::LazyTensor) = ElementwiseTensorOperation{:-}(s,t)
+Base.:-(s::LazyTensor, t::LazyTensor) = TensorSum(s,-t)
 
 # Composing lazy tensors
 Base.:∘(s::LazyTensor, t::LazyTensor) = TensorComposition(s,t)