@@ -160,10 +160,24 @@ struct TransformFactorization{T,Grid,Plan,IPlan} <: Factorization{T}
160
160
end
161
161
162
162
TransformFactorization {T} (grid, plan) where T = TransformFactorization {T,typeof(grid),typeof(plan),Nothing} (grid, plan, nothing )
163
+
164
+ """
165
+ TransformFactorization(grid, plan)
166
+
167
+ associates a planned transform with a grid. That is, if `F` is a `TransformFactorization`, then
168
+ `F \\ f` is equivalent to `F.plan * f[F.grid]`.
169
+ """
163
170
TransformFactorization (grid, plan) = TransformFactorization {promote_type(eltype(eltype(grid)),eltype(plan))} (grid, plan)
164
171
165
172
166
173
TransformFactorization {T} (grid, :: Nothing , iplan) where T = TransformFactorization {T,typeof(grid),Nothing,typeof(iplan)} (grid, nothing , iplan)
174
+
175
+ """
176
+ TransformFactorization(grid, nothing, iplan)
177
+
178
+ associates a planned inverse transform with a grid. That is, if `F` is a `TransformFactorization`, then
179
+ `F \\ f` is equivalent to `F.iplan \ f[F.grid]`.
180
+ """
167
181
TransformFactorization (grid, :: Nothing , iplan) = TransformFactorization {promote_type(eltype(eltype(grid)),eltype(iplan))} (grid, nothing , iplan)
168
182
169
183
grid (T:: TransformFactorization ) = T. grid
@@ -190,6 +204,13 @@ function _factorize(::AbstractBasisLayout, L)
190
204
TransformFactorization (p, nothing , factorize (L[p,:]))
191
205
end
192
206
207
+
208
+ """
209
+ ProjectionFactorization(F, inds)
210
+
211
+ projects a factorization to a subset of coefficients. That is, if `P` is a `ProjectionFactorization`
212
+ then `P \ f` is equivalent to `(F \ f)[inds]`
213
+ """
193
214
struct ProjectionFactorization{T, FAC<: Factorization{T} , INDS} <: Factorization{T}
194
215
F:: FAC
195
216
inds:: INDS
201
222
202
223
_factorize (:: SubBasisLayout , L) = ProjectionFactorization (factorize (parent (L)), parentindices (L)[2 ])
203
224
225
+
226
+ """
227
+ MappedFactorization(F, map)
228
+
229
+ remaps a factorization to a different domain. That is, if `M` is a `MappedFactorization`
230
+ then `M \ f` is equivalent to `F \ f[map]`
231
+ """
204
232
struct MappedFactorization{T, FAC<: Factorization{T} , MAP} <: Factorization{T}
205
233
F:: FAC
206
234
map:: MAP
@@ -229,6 +257,11 @@ copy(L::Ldiv{<:AbstractBasisLayout,ApplyLayout{typeof(*)}}) = copy(Ldiv{UnknownL
229
257
copy (L:: Ldiv{<:AbstractBasisLayout,<:AbstractLazyLayout} ) = transform_ldiv (L. A, L. B)
230
258
copy (L:: Ldiv{<:AbstractBasisLayout,ZerosLayout} ) = Zeros {eltype(L)} (axes (L)... )
231
259
260
+ """
261
+ WeightedFactorization(w, F)
262
+
263
+ weights a factorization `F` by `w`.
264
+ """
232
265
struct WeightedFactorization{T, WW, FAC<: Factorization{T} } <: Factorization{T}
233
266
w:: WW
234
267
F:: FAC
0 commit comments