@@ -176,6 +176,14 @@ ContinuumArrays.unweighted(wP::AbstractWeighted) = wP.P
176176# copy(L::Ldiv{WeightedOPLayout,ApplyLayout{typeof(*)},<:Any,<:AbstractQuasiVector}) = copy(Ldiv{UnknownLayout,ApplyLayout{typeof(*)}}(L.A, L.B))
177177
178178copy (L:: Ldiv{<:WeightedOPLayout{<:NormalizedOPLayout},Lay} ) where Lay<: AbstractBasisLayout = copy (Ldiv {ApplyLayout{typeof(*)},Lay} (L. A,L. B))
179+ copy (L:: Ldiv{Lay,<:WeightedOPLayout{<:NormalizedOPLayout}} ) where Lay<: AbstractBasisLayout = copy (Ldiv {Lay,ApplyLayout{typeof(*)}} (L. A,L. B))
180+ copy (L:: Ldiv{<:WeightedOPLayout{<:NormalizedOPLayout},<:WeightedOPLayout{<:NormalizedOPLayout}} ) = copy (Ldiv {ApplyLayout{typeof(*)},ApplyLayout{typeof(*)}} (L. A,L. B))
181+ copy (L:: Ldiv{<:WeightedBasisLayout{<:NormalizedOPLayout},Lay} ) where Lay<: AbstractBasisLayout = copy (Ldiv {ApplyLayout{typeof(*)},Lay} (L. A,L. B))
182+ copy (L:: Ldiv{Lay,<:WeightedBasisLayout{<:NormalizedOPLayout}} ) where Lay<: AbstractBasisLayout = copy (Ldiv {Lay,ApplyLayout{typeof(*)}} (L. A,L. B))
183+ copy (L:: Ldiv{<:WeightedBasisLayout{<:NormalizedOPLayout},<:WeightedBasisLayout{<:NormalizedOPLayout}} ) = copy (Ldiv {ApplyLayout{typeof(*)},ApplyLayout{typeof(*)}} (L. A,L. B))
184+ copy (L:: Ldiv{<:WeightedOPLayout{<:NormalizedOPLayout},<:WeightedBasisLayout{<:NormalizedOPLayout}} ) = copy (Ldiv {ApplyLayout{typeof(*)},ApplyLayout{typeof(*)}} (L. A,L. B))
185+ copy (L:: Ldiv{<:WeightedBasisLayout{<:NormalizedOPLayout},<:WeightedOPLayout{<:NormalizedOPLayout}} ) = copy (Ldiv {ApplyLayout{typeof(*)},ApplyLayout{typeof(*)}} (L. A,L. B))
186+
179187
180188# function layout_broadcasted(::ExpansionLayout{WeightedOPLayout}, ::OPLayout, ::typeof(*), a, P)
181189# axes(a,1) == axes(P,1) || throw(DimensionMismatch())
@@ -226,8 +234,15 @@ copy(Q::Weighted) = Q
226234
227235weight (wP:: Weighted ) = orthogonalityweight (wP. P)
228236
229- MemoryLayout (:: Type{<:Weighted{<:Any,PP}} ) where PP = WeightedOPLayout {typeof(MemoryLayout(PP))} ()
237+ _weightedmemorylayout (:: PP ) where PP<: AbstractOPLayout = WeightedOPLayout {PP} ()
238+ _weightedmemorylayout (:: PP ) where PP = WeightedBasisLayout {PP} ()
239+ MemoryLayout (:: Type{<:Weighted{<:Any,PP}} ) where PP = _weightedmemorylayout (MemoryLayout (PP))
230240
241+ function arguments (:: ApplyLayout{typeof(*)} , Q:: BroadcastQuasiMatrix{<:Any,typeof(*),<:Tuple{Weight,Normalized}} )
242+ w,Q = Q. args
243+ P,D = arguments (* ,Q)
244+ (w .* P),D
245+ end
231246function arguments (:: ApplyLayout{typeof(*)} , Q:: Weighted{<:Any,<:Normalized} )
232247 P,D = arguments (* , Q. P)
233248 Weighted (P),D
0 commit comments