Mercurial > repos > public > sbplib_julia
diff src/LazyTensors/lazy_tensor_operations.jl @ 2061:e70417f95713 feature/lazy_tensors/zero_tensor
Add ZeroTensor
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Mon, 16 Feb 2026 21:46:35 +0100 |
| parents | ed50eec18365 |
| children |
line wrap: on
line diff
--- a/src/LazyTensors/lazy_tensor_operations.jl Sat Feb 14 23:37:40 2026 +0100 +++ b/src/LazyTensors/lazy_tensor_operations.jl Mon Feb 16 21:46:35 2026 +0100 @@ -113,6 +113,9 @@ range_size(tmBinOp::TensorSum) = range_size(tmBinOp.tms[1]) domain_size(tmBinOp::TensorSum) = domain_size(tmBinOp.tms[1]) +TensorSum(a::ZeroTensor{T,R,D}, b::ZeroTensor{T,R,D}) where {T,R,D} = ZeroTensor{T,R,D}() +TensorSum(::ZeroTensor, t::LazyTensor) = t +TensorSum(t::LazyTensor, ::ZeroTensor) = t """ TensorComposition{T,R,K,D} @@ -161,6 +164,20 @@ return tmi end + +function TensorComposition(a::ZeroTensor{T,R,D}, b::ZeroTensor{T,D,K}) where {T,R,D,K} + return ZeroTensor{T,R,K}() +end + +function TensorComposition(a::ZeroTensor{T,R,D}, b::LazyTensor{T,D,K}) where {T,R,D,K} + return ZeroTensor{T,R,K}() +end + +function TensorComposition(a::LazyTensor{T,R,D}, b::ZeroTensor{T,D,K}) where {T,R,D,K} + return ZeroTensor{T,R,K}() +end + + Base.:*(a::T, tm::LazyTensor{T}) where T = TensorComposition(ScalingTensor{T,range_dim(tm)}(a,range_size(tm)), tm) Base.:*(tm::LazyTensor{T}, a::T) where T = a*tm
