comparison LazyTensors/src/lazy_operations.jl @ 236:856caf960d89 boundary_conditions

Use CartesianIndex for a bunch of index operations
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 26 Jun 2019 18:24:07 +0200
parents a20bb4fac23d
children 1c6afdcfd657
comparison
equal deleted inserted replaced
235:a5fdc00d5070 236:856caf960d89
134 134
135 # # TBD: Should this be implemented on a type by type basis or through a trait to provide earlier errors? 135 # # TBD: Should this be implemented on a type by type basis or through a trait to provide earlier errors?
136 Base.adjoint(t::TensorMapping) = LazyTensorMappingTranspose(t) 136 Base.adjoint(t::TensorMapping) = LazyTensorMappingTranspose(t)
137 Base.adjoint(t::LazyTensorMappingTranspose) = t.tm 137 Base.adjoint(t::LazyTensorMappingTranspose) = t.tm
138 138
139 apply(tm::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,R}, I::Vararg) where {T,R,D} = apply_transpose(tm.tm, v, I...) 139 apply(tm::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,R}, I::CartesianIndex{D}) where {T,R,D} = apply_transpose(tm.tm, v, I)
140 apply_transpose(tm::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,D}, I::Vararg) where {T,R,D} = apply(tm.tm, v, I...) 140 apply_transpose(tm::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,D}, I::CartesianIndex{R}) where {T,R,D} = apply(tm.tm, v, I)
141 141
142 range_size(tmt::LazyTensorMappingTranspose{T,R,D}, d_size::NTuple{R,Integer}) where {T,R,D} = domain_size(tmt.tm, d_size) 142 range_size(tmt::LazyTensorMappingTranspose{T,R,D}, d_size::NTuple{R,Integer}) where {T,R,D} = domain_size(tmt.tm, d_size)
143 domain_size(tmt::LazyTensorMappingTranspose{T,R,D}, r_size::NTuple{D,Integer}) where {T,R,D} = range_size(tmt.tm, r_size) 143 domain_size(tmt::LazyTensorMappingTranspose{T,R,D}, r_size::NTuple{D,Integer}) where {T,R,D} = range_size(tmt.tm, r_size)
144 144
145 145