comparison src/LazyTensors/lazy_tensor_operations.jl @ 460:acffa3a1395d feature/inflated_tensormapping

Move part of the documentation to the constructor
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 21 Oct 2020 21:44:35 +0200
parents 11e58c49fb46
children a0e40d16ba0e
comparison
equal deleted inserted replaced
459:11e58c49fb46 460:acffa3a1395d
168 domain_size(tmi::IdentityMapping) = tmi.size 168 domain_size(tmi::IdentityMapping) = tmi.size
169 169
170 apply(tmi::IdentityMapping{T,D}, v::AbstractArray{T,D}, I::Vararg{Any,D}) where {T,D} = v[I...] 170 apply(tmi::IdentityMapping{T,D}, v::AbstractArray{T,D}, I::Vararg{Any,D}) where {T,D} = v[I...]
171 apply_transpose(tmi::IdentityMapping{T,D}, v::AbstractArray{T,D}, I::Vararg{Any,D}) where {T,D} = v[I...] 171 apply_transpose(tmi::IdentityMapping{T,D}, v::AbstractArray{T,D}, I::Vararg{Any,D}) where {T,D} = v[I...]
172 172
173
173 """ 174 """
174 InflatedTensorMapping{T,R,D} <: TensorMapping{T,R,D} 175 InflatedTensorMapping{T,R,D} <: TensorMapping{T,R,D}
175 176
176 An inflated `TensorMapping` with dimensions added before and afer its actual dimensions. 177 An inflated `TensorMapping` with dimensions added before and afer its actual dimensions.
177 178
178 ---
179
180 InflatedTensorMapping(before, tm, after)
181
182 The outer product of `before`, `tm` and `after`, where `before` and `after` are `IndentityMapping`s.
183 """ 179 """
184 struct InflatedTensorMapping{T,R,D,D_before,R_middle,D_middle,D_after, TM<:TensorMapping{T,R_middle,D_middle}} <: TensorMapping{T,R,D} 180 struct InflatedTensorMapping{T,R,D,D_before,R_middle,D_middle,D_after, TM<:TensorMapping{T,R_middle,D_middle}} <: TensorMapping{T,R,D}
185 before::IdentityMapping{T,D_before} 181 before::IdentityMapping{T,D_before}
186 tm::TM 182 tm::TM
187 after::IdentityMapping{T,D_after} 183 after::IdentityMapping{T,D_after}
188 184
185 ```
186 InflatedTensorMapping(before, tm, after)
187
188 The outer product of `before`, `tm` and `after`, where `before` and `after` are `IndentityMapping`s.
189 ```
189 function InflatedTensorMapping(before, tm::TensorMapping{T}, after) where T 190 function InflatedTensorMapping(before, tm::TensorMapping{T}, after) where T
190 R_before = range_dim(before) 191 R_before = range_dim(before)
191 R_middle = range_dim(tm) 192 R_middle = range_dim(tm)
192 R_after = range_dim(after) 193 R_after = range_dim(after)
193 R = R_before+R_middle+R_after 194 R = R_before+R_middle+R_after