diff --git a/src/fedvr_derivatives.jl b/src/fedvr_derivatives.jl index c3ce975..ecfe09d 100644 --- a/src/fedvr_derivatives.jl +++ b/src/fedvr_derivatives.jl @@ -62,6 +62,9 @@ difffun(B::RestrictedFEDVR, n::Integer) = i -> diff(parent(B),n,i) derop!(A, B::FEDVROrRestricted, n::Integer) = set_elements!(difffun(B,n), A, B) +# TODO: this is to avoid expanding out, but could be redesigned +ContinuumArrays.MemoryLayout(::Type{<:BasisOrRestricted{<:FEDVR}}) = ContinuumArrays.BasisLayout() + @materialize function *(Ac::AdjointBasisOrRestricted{<:FEDVR}, D::Derivative, B::BasisOrRestricted{<:FEDVR}) diff --git a/src/restricted_bases.jl b/src/restricted_bases.jl index ff5d5ec..8bd4509 100644 --- a/src/restricted_bases.jl +++ b/src/restricted_bases.jl @@ -25,7 +25,7 @@ function restriction_extents(B̃::RestrictedQuasiArray) end restriction(B) = Diagonal(Ones{Int}(size(B,2))) -restriction(B̃::RestrictedQuasiArray) = last(LazyArrays.arguments(B̃)) +restriction(B̃::RestrictedQuasiArray) = last(LazyArrays.arguments(LazyArrays.ApplyLayout{typeof(*)}(), B̃)) function combined_restriction_selection(A,B) parent(A) == parent(B) ||