@@ -28,7 +28,7 @@ MemoryLayout(::Type{<:Weight}) = WeightLayout()
28
28
adjointlayout (:: Type , :: AbstractBasisLayout ) = AdjointBasisLayout ()
29
29
adjointlayout (:: Type , :: SubBasisLayout ) = AdjointSubBasisLayout ()
30
30
adjointlayout (:: Type , :: MappedBasisLayouts ) = AdjointMappedBasisLayout ()
31
- broadcastlayout (:: Type{typeof(*)} , :: WeightLayout , :: BasisLayout ) = WeightedBasisLayout ()
31
+ broadcastlayout (:: Type{typeof(*)} , :: WeightLayout , :: AbstractBasisLayout ) = WeightedBasisLayout ()
32
32
broadcastlayout (:: Type{typeof(*)} , :: WeightLayout , :: SubBasisLayout ) = WeightedBasisLayout ()
33
33
broadcastlayout (:: Type{typeof(*)} , :: WeightLayout , :: MappedBasisLayouts ) = MappedWeightedBasisLayout ()
34
34
64
64
@inline copy (L:: Ldiv{<:AbstractBasisLayout,BroadcastLayout{typeof(-)},<:Any,<:AbstractQuasiVector} ) =
65
65
transform_ldiv (L. A, L. B)
66
66
67
- function copy (P:: Ldiv{<:AbstractBasisLayout,<:AbstractBasisLayout} )
67
+ @inline function copy (P:: Ldiv{<:AbstractBasisLayout,<:AbstractBasisLayout} )
68
68
A, B = P. A, P. B
69
69
A == B || throw (ArgumentError (" Override copy for $(typeof (A)) \\ $(typeof (B)) " ))
70
70
SquareEye {eltype(P)} ((axes (A,2 ),))
71
71
end
72
- function copy (P:: Ldiv{<:SubBasisLayouts,<:SubBasisLayouts} )
72
+ @inline function copy (P:: Ldiv{<:SubBasisLayouts,<:SubBasisLayouts} )
73
73
A, B = P. A, P. B
74
74
parent (A) == parent (B) ||
75
75
throw (ArgumentError (" Override copy for $(typeof (A)) \\ $(typeof (B)) " ))
91
91
92
92
for Bas1 in (:Basis , :WeightedBasis ), Bas2 in (:Basis , :WeightedBasis )
93
93
@eval == (A:: SubQuasiArray{<:Any,2,<:$Bas1} , B:: SubQuasiArray{<:Any,2,<:$Bas2} ) =
94
- all ( parentindices (A) == parentindices (B) ) && parent (A) == parent (B)
94
+ parentindices (A) == parentindices (B) && parent (A) == parent (B)
95
95
end
96
96
97
97
@@ -132,7 +132,7 @@ TransformFactorization(grid, ::Nothing, iplan) =
132
132
133
133
grid (T:: TransformFactorization ) = T. grid
134
134
135
- \ (a:: TransformFactorization{<:Any,<:Any,Nothing} , b:: AbstractQuasiVector ) = a. iplan \ convert (Array, b[a. grid])
135
+ \ (a:: TransformFactorization{<:Any,<:Any,Nothing} , b:: AbstractQuasiVector{T} ) where T = a. iplan \ convert (Array{T} , b[a. grid])
136
136
\ (a:: TransformFactorization , b:: AbstractQuasiVector ) = a. plan * convert (Array, b[a. grid])
137
137
138
138
\ (a:: TransformFactorization{<:Any,<:Any,Nothing} , b:: AbstractVector ) = a. iplan \ b
@@ -159,7 +159,7 @@ _factorize(::SubBasisLayout, L) = ProjectionFactorization(factorize(parent(L)),
159
159
# end
160
160
161
161
transform_ldiv (A, B, _) = factorize (A) \ B
162
- transform_ldiv (A, B) = transform_ldiv (A, B, axes (A))
162
+ transform_ldiv (A, B) = transform_ldiv (A, B, size (A))
163
163
164
164
copy (L:: Ldiv{<:AbstractBasisLayout,<:Any,<:Any,<:AbstractQuasiVector} ) =
165
165
transform_ldiv (L. A, L. B)
271
271
# we represent as a Mul with a banded matrix
272
272
sublayout (:: AbstractBasisLayout , :: Type{<:Tuple{<:Inclusion,<:AbstractUnitRange}} ) = SubBasisLayout ()
273
273
sublayout (:: AbstractBasisLayout , :: Type{<:Tuple{<:AbstractAffineQuasiVector,<:AbstractUnitRange}} ) = MappedBasisLayout ()
274
- sublayout (:: WeightedBasisLayout , :: Type{<:Tuple{<:AbstractAffineQuasiVector,<:AbstractUnitRange}} ) = MappedWeightedBasisLayout ()
274
+ sublayout (:: WeightedBasisLayouts , :: Type{<:Tuple{<:AbstractAffineQuasiVector,<:AbstractUnitRange}} ) = MappedWeightedBasisLayout ()
275
275
sublayout (:: WeightedBasisLayout , :: Type{<:Tuple{<:Inclusion,<:AbstractUnitRange}} ) = SubWeightedBasisLayout ()
276
+ sublayout (:: MappedWeightedBasisLayout , :: Type{<:Tuple{<:Inclusion,<:AbstractUnitRange}} ) = MappedWeightedBasisLayout ()
276
277
277
278
@inline sub_materialize (:: AbstractBasisLayout , V:: AbstractQuasiArray ) = V
278
279
@inline sub_materialize (:: AbstractBasisLayout , V:: AbstractArray ) = V
0 commit comments