comparison src/LazyTensors/lazy_tensor_operations.jl @ 461:a0e40d16ba0e feature/inflated_tensormapping

Better documentation
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 21 Oct 2020 22:02:07 +0200
parents acffa3a1395d
children 5d6cbb7bfc23 a52f38e72258
comparison
equal deleted inserted replaced
460:acffa3a1395d 461:a0e40d16ba0e
173 173
174 """ 174 """
175 InflatedTensorMapping{T,R,D} <: TensorMapping{T,R,D} 175 InflatedTensorMapping{T,R,D} <: TensorMapping{T,R,D}
176 176
177 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.
178
179 """ 178 """
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} 179 struct InflatedTensorMapping{T,R,D,D_before,R_middle,D_middle,D_after, TM<:TensorMapping{T,R_middle,D_middle}} <: TensorMapping{T,R,D}
181 before::IdentityMapping{T,D_before} 180 before::IdentityMapping{T,D_before}
182 tm::TM 181 tm::TM
183 after::IdentityMapping{T,D_after} 182 after::IdentityMapping{T,D_after}
184 183
185 ```
186 InflatedTensorMapping(before, tm, after)
187
188 The outer product of `before`, `tm` and `after`, where `before` and `after` are `IndentityMapping`s.
189 ```
190 function InflatedTensorMapping(before, tm::TensorMapping{T}, after) where T 184 function InflatedTensorMapping(before, tm::TensorMapping{T}, after) where T
191 R_before = range_dim(before) 185 R_before = range_dim(before)
192 R_middle = range_dim(tm) 186 R_middle = range_dim(tm)
193 R_after = range_dim(after) 187 R_after = range_dim(after)
194 R = R_before+R_middle+R_after 188 R = R_before+R_middle+R_after
200 return new{T,R,D,D_before,R_middle,D_middle,D_after, typeof(tm)}(before, tm, after) 194 return new{T,R,D,D_before,R_middle,D_middle,D_after, typeof(tm)}(before, tm, after)
201 end 195 end
202 end 196 end
203 export InflatedTensorMapping 197 export InflatedTensorMapping
204 198
199 """
200 InflatedTensorMapping(before, tm, after)
201
202 The outer product of `before`, `tm` and `after`, where `before` and `after` are `IdentityMapping`s.
203 """
204 InflatedTensorMapping(::IdentityMapping, ::TensorMapping, ::IdentityMapping)
205 # TODO: Implement constructors where one of `before` or `after` is missing 205 # TODO: Implement constructors where one of `before` or `after` is missing
206 206
207 # TODO: Implement syntax and constructors for products of different combinations of InflatedTensorMapping and IdentityMapping 207 # TODO: Implement syntax and constructors for products of different combinations of InflatedTensorMapping and IdentityMapping
208 208
209 # TODO: Implement some pretty printing in terms of ⊗. E.g InflatedTensorMapping(I(3),B,I(2)) -> I(3)⊗B⊗I(2) 209 # TODO: Implement some pretty printing in terms of ⊗. E.g InflatedTensorMapping(I(3),B,I(2)) -> I(3)⊗B⊗I(2)