comparison src/LazyTensors/lazy_tensor_operations.jl @ 941:1513355f64cd bugfix/tensor_application_1d_cartesian_index

Add a comment
author Jonatan Werpers <jonatan@werpers.com>
date Sat, 12 Mar 2022 22:36:02 +0100
parents 4a9a96d51940
children 6a2e30fa3bd8
comparison
equal deleted inserted replaced
938:4a9a96d51940 941:1513355f64cd
13 end 13 end
14 # TODO: Do boundschecking on creation! 14 # TODO: Do boundschecking on creation!
15 export LazyTensorMappingApplication 15 export LazyTensorMappingApplication
16 16
17 Base.getindex(ta::LazyTensorMappingApplication{T,R}, I::Vararg{Any,R}) where {T,R} = apply(ta.t, ta.o, I...) 17 Base.getindex(ta::LazyTensorMappingApplication{T,R}, I::Vararg{Any,R}) where {T,R} = apply(ta.t, ta.o, I...)
18 Base.getindex(ta::LazyTensorMappingApplication{T,1}, I::CartesianIndex{1}) where {T} = apply(ta.t, ta.o, I.I...) 18 Base.getindex(ta::LazyTensorMappingApplication{T,1}, I::CartesianIndex{1}) where {T} = apply(ta.t, ta.o, I.I...) # Would otherwise be caught in the previes method.
19 Base.size(ta::LazyTensorMappingApplication) = range_size(ta.t) 19 Base.size(ta::LazyTensorMappingApplication) = range_size(ta.t)
20 # TODO: What else is needed to implement the AbstractArray interface? 20 # TODO: What else is needed to implement the AbstractArray interface?
21 21
22 Base.:*(a::TensorMapping, v::AbstractArray) = LazyTensorMappingApplication(a,v) 22 Base.:*(a::TensorMapping, v::AbstractArray) = LazyTensorMappingApplication(a,v)
23 Base.:*(a::TensorMapping, b::TensorMapping) = throw(MethodError(Base.:*,(a,b))) 23 Base.:*(a::TensorMapping, b::TensorMapping) = throw(MethodError(Base.:*,(a,b)))