comparison src/LazyTensors/LazyTensors.jl @ 1836:368999a2e243 refactor/lazy_tensors/elementwise_ops

Add TensorNegation
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 09 Jan 2025 15:32:47 +0100
parents a6f28a8b8f3f
children 200971c71657
comparison
equal deleted inserted replaced
1835:a6f28a8b8f3f 1836:368999a2e243
7 export range_size, domain_size 7 export range_size, domain_size
8 8
9 export TensorApplication 9 export TensorApplication
10 export TensorTranspose 10 export TensorTranspose
11 export TensorComposition 11 export TensorComposition
12 export TensorNegation
12 export IdentityTensor 13 export IdentityTensor
13 export ScalingTensor 14 export ScalingTensor
14 export DiagonalTensor 15 export DiagonalTensor
15 export DenseTensor 16 export DenseTensor
16 export InflatedTensor 17 export InflatedTensor
34 Base.:*(a::LazyTensor, b::LazyTensor) = throw(MethodError(Base.:*,(a,b))) 35 Base.:*(a::LazyTensor, b::LazyTensor) = throw(MethodError(Base.:*,(a,b)))
35 Base.:*(a::LazyTensor, args::Union{LazyTensor, AbstractArray}...) = foldr(*,(a,args...)) 36 Base.:*(a::LazyTensor, args::Union{LazyTensor, AbstractArray}...) = foldr(*,(a,args...))
36 37
37 # Addition and subtraction of lazy tensors 38 # Addition and subtraction of lazy tensors
38 Base.:+(ts::LazyTensor...) = ElementwiseTensorOperation{:+}(ts...) 39 Base.:+(ts::LazyTensor...) = ElementwiseTensorOperation{:+}(ts...)
40 Base.:-(t::LazyTensor) = TensorNegation(t)
39 Base.:-(s::LazyTensor, t::LazyTensor) = ElementwiseTensorOperation{:-}(s,t) 41 Base.:-(s::LazyTensor, t::LazyTensor) = ElementwiseTensorOperation{:-}(s,t)
40 42
41 # Composing lazy tensors 43 # Composing lazy tensors
42 Base.:∘(s::LazyTensor, t::LazyTensor) = TensorComposition(s,t) 44 Base.:∘(s::LazyTensor, t::LazyTensor) = TensorComposition(s,t)
43 Base.:∘(s::TensorComposition, t::LazyTensor) = s.t1∘(s.t2∘t) 45 Base.:∘(s::TensorComposition, t::LazyTensor) = s.t1∘(s.t2∘t)