|
85 | 85 | demap(A)\demap(B)
|
86 | 86 | end
|
87 | 87 |
|
| 88 | +function copy(P::Ldiv{<:MappedBasisLayouts,<:AbstractLazyLayout}) |
| 89 | + A,B = P.A, P.B |
| 90 | + demap(A) \ B[invmap(basismap(A))] |
| 91 | +end |
| 92 | +copy(P::Ldiv{<:MappedBasisLayouts,ApplyLayout{typeof(*)}}) = copy(Ldiv{UnknownLayout,ApplyLayout{typeof(*)}}(P.A,P.B)) |
| 93 | + |
88 | 94 | @inline copy(L::Ldiv{<:AbstractBasisLayout,<:SubBasisLayouts}) = apply(\, L.A, ApplyQuasiArray(L.B))
|
89 | 95 | @inline function copy(L::Ldiv{<:SubBasisLayouts,<:AbstractBasisLayout})
|
90 | 96 | P = parent(L.A)
|
@@ -338,15 +344,14 @@ sublayout(::MappedWeightedBasisLayout, ::Type{<:Tuple{<:Inclusion,<:AbstractVect
|
338 | 344 |
|
339 | 345 | demap(x) = x
|
340 | 346 | demap(x::BroadcastQuasiArray) = BroadcastQuasiArray(x.f, map(demap, arguments(x))...)
|
341 |
| -demap(V::SubQuasiArray{<:Any,2,<:Any,<:Tuple{<:AbstractAffineQuasiVector,<:Slice}}) = parent(V) |
342 |
| -demap(V::SubQuasiArray{<:Any,1,<:Any,<:Tuple{<:AbstractAffineQuasiVector}}) = parent(V) |
| 347 | +demap(V::SubQuasiArray{<:Any,2,<:Any,<:Tuple{Any,Slice}}) = parent(V) |
| 348 | +demap(V::SubQuasiArray{<:Any,1}) = parent(V) |
343 | 349 | function demap(V::SubQuasiArray{<:Any,2})
|
344 | 350 | kr, jr = parentindices(V)
|
345 | 351 | demap(parent(V)[kr,:])[:,jr]
|
346 | 352 | end
|
347 | 353 |
|
348 |
| -basismap(x::SubQuasiArray{<:Any,2,<:Any,<:Tuple{<:AbstractAffineQuasiVector,<:Any}}) = parentindices(x)[1] |
349 |
| -basismap(x::SubQuasiArray{<:Any,1,<:Any,<:Tuple{<:AbstractAffineQuasiVector}}) = parentindices(x)[1] |
| 354 | +basismap(x::SubQuasiArray) = parentindices(x)[1] |
350 | 355 | basismap(x::BroadcastQuasiArray) = basismap(x.args[1])
|
351 | 356 |
|
352 | 357 |
|
|
0 commit comments