@@ -5,7 +5,7 @@ using IntervalSets: UnitRange
55using ContinuumArrays, QuasiArrays, LazyArrays, FillArrays, BandedMatrices, BlockArrays,
66 IntervalSets, DomainSets, ArrayLayouts, SpecialFunctions,
77 InfiniteLinearAlgebra, InfiniteArrays, LinearAlgebra, FastGaussQuadrature, FastTransforms, FFTW,
8- LazyBandedMatrices, HypergeometricFunctions
8+ LazyBandedMatrices, HypergeometricFunctions, RecurrenceRelationships
99
1010import Base: @_inline_meta , axes, getindex, unsafe_getindex, convert, prod, * , / , \ , + , - ,
1111 IndexStyle, IndexLinear, == , OneTo, tail, similar, copyto!, copy, setindex,
@@ -18,7 +18,7 @@ import LazyArrays: MemoryLayout, Applied, ApplyStyle, flatten, _flatten, adjoint
1818 _mul_arguments, CachedVector, CachedMatrix, LazyVector, LazyMatrix, axpy!, AbstractLazyLayout, BroadcastLayout,
1919 AbstractCachedVector, AbstractCachedMatrix, paddeddata, cache_filldata!,
2020 simplifiable, PaddedArray, converteltype, simplify
21- import ArrayLayouts: MatMulVecAdd, materialize!, _fill_lmul!, sublayout, sub_materialize, lmul!, ldiv!, ldiv, transposelayout, triangulardata,
21+ import ArrayLayouts: MatMulVecAdd, materialize!, sublayout, sub_materialize, lmul!, ldiv!, ldiv, transposelayout, triangulardata,
2222 subdiagonaldata, diagonaldata, supdiagonaldata, mul, rowsupport, colsupport
2323import LazyBandedMatrices: SymTridiagonal, Bidiagonal, Tridiagonal, unitblocks, BlockRange1, AbstractLazyBandedLayout
2424import LinearAlgebra: pinv, factorize, qr, adjoint, transpose, dot, mul!, reflectorApply!
@@ -39,9 +39,10 @@ import ContinuumArrays: Basis, Weight, basis_axes, @simplify, Identity, Abstract
3939 AffineQuasiVector, AffineMap, AbstractWeightLayout, AbstractWeightedBasisLayout, WeightedBasisLayout, WeightedBasisLayouts, demap, AbstractBasisLayout, BasisLayout,
4040 checkpoints, weight, unweighted, MappedBasisLayouts, sum_layout, invmap, plan_ldiv, layout_broadcasted, MappedBasisLayout, SubBasisLayout, broadcastbasis_layout,
4141 plan_grid_transform, plan_transform, MAX_PLOT_POINTS, MulPlan, grammatrix, AdjointBasisLayout, grammatrix_layout, plan_transform_layout, _cumsum
42- import FastTransforms: Λ, forwardrecurrence, forwardrecurrence!, _forwardrecurrence!, clenshaw, clenshaw!,
43- _forwardrecurrence_next, _clenshaw_next, check_clenshaw_recurrences, ChebyshevGrid, chebyshevpoints, Plan, ScaledPlan, th_cheb2leg
44-
42+ import FastTransforms: Λ, ChebyshevGrid, chebyshevpoints, Plan, ScaledPlan, th_cheb2leg, pochhammer
43+ import RecurrenceRelationships: forwardrecurrence, forwardrecurrence!, clenshaw, clenshaw!,
44+ check_clenshaw_recurrences
45+ import RecurrenceRelationshipArrays: initiateforwardrecurrence, Clenshaw
4546import FastGaussQuadrature: jacobimoment
4647
4748import BlockArrays: blockedrange, _BlockedUnitRange, unblock, _BlockArray, block, blockindex, BlockSlice, blockvec
@@ -211,10 +212,13 @@ singularitiesview(w, ::Inclusion) = w # for now just assume it doesn't change
211212singularitiesview (w, ind) = view (w, ind)
212213singularities (S:: SubQuasiArray ) = singularitiesview (singularities (parent (S)), parentindices (S)[1 ])
213214
214- basis_axes (:: Inclusion{<:Any,<:AbstractInterval} , v) = convert (AbstractQuasiMatrix{eltype (v)}, basis_singularities (singularities (v)))
215-
216215struct NoSingularities end
217216
217+ basis_singularities (ax, :: NoSingularities ) = basis (ax)
218+ basis_singularities (ax, sing) = basis_singularities (sing)
219+ basis_axes (ax:: Inclusion{<:Any,<:AbstractInterval} , v) = convert (AbstractQuasiMatrix{eltype (v)}, basis_singularities (ax, singularities (v)))
220+
221+
218222singularities (:: Number ) = NoSingularities ()
219223singularities (r:: Base.RefValue ) = r[] # pass through
220224
0 commit comments