Skip to content

Commit da7d4ba

Browse files
authored
support padded coefficients (for ∞-dimensional case) (#93)
* support padded coefficients (for ∞-dimensional case) * add tests
1 parent 884d86e commit da7d4ba

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

src/ContinuumArrays.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Base.Broadcast: materialize, BroadcastStyle, broadcasted
88
import LazyArrays: MemoryLayout, Applied, ApplyStyle, flatten, _flatten, colsupport, most, combine_mul_styles, AbstractArrayApplyStyle,
99
adjointlayout, arguments, _mul_arguments, call, broadcastlayout, layout_getindex, UnknownLayout,
1010
sublayout, sub_materialize, ApplyLayout, BroadcastLayout, combine_mul_styles, applylayout,
11-
simplifiable, _simplify, AbstractLazyLayout
11+
simplifiable, _simplify, AbstractLazyLayout, PaddedLayout
1212
import LinearAlgebra: pinv, dot, norm2
1313
import BandedMatrices: AbstractBandedLayout, _BandedMatrix
1414
import BlockArrays: block, blockindex, unblock, blockedrange, _BlockedUnitRange, _BlockArray

src/bases/bases.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,18 @@ copy(L::Ldiv{<:AbstractBasisLayout,BroadcastLayout{typeof(*)},<:Any,<:AbstractQu
122122

123123
# expansion
124124
_grid(_, P) = error("Overload Grid")
125-
_grid(lay::ApplyLayout{typeof(*)}, P) = grid(first(arguments(lay,P)))
125+
126+
_mul_grid(_, args) = grid(first(args))
127+
_mul_grid(::Tuple{Any,PaddedLayout}, (P,c)) = grid(P[:,colsupport(c)])
128+
129+
function _grid(lay::ApplyLayout{typeof(*)}, P)
130+
args = arguments(lay,P)
131+
_mul_grid(map(MemoryLayout,args), args)
132+
end
126133
_grid(::MappedBasisLayout, P) = invmap(parentindices(P)[1])[grid(demap(P))]
127134
_grid(::SubBasisLayout, P) = grid(parent(P))
128135
_grid(::WeightedBasisLayouts, P) = grid(unweightedbasis(P))
129-
grid(P) = _grid(MemoryLayout(typeof(P)), P)
136+
grid(P) = _grid(MemoryLayout(P), P)
130137

131138

132139
struct TransformFactorization{T,Grid,Plan,IPlan} <: Factorization{T}

test/runtests.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,4 +605,10 @@ include("test_basisconcat.jl")
605605
u = L*randn(6)
606606
rep = RecipesBase.apply_recipe(Dict{Symbol, Any}(), u)
607607
@test rep[1].args == (L.points,u[L.points])
608+
609+
@testset "padded" begin
610+
u = L * Vcat(rand(3), Zeros(3))
611+
rep = RecipesBase.apply_recipe(Dict{Symbol, Any}(), u)
612+
@test rep[1].args == (L.points,u[L.points])
613+
end
608614
end

0 commit comments

Comments
 (0)