diff --git a/Project.toml b/Project.toml index 53e3eb8..6cb790d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ClassicalOrthogonalPolynomials" uuid = "b30e2e7b-c4ee-47da-9d5f-2c5c27239acd" -version = "0.15.9" +version = "0.15.10" authors = ["Sheehan Olver "] [deps] diff --git a/src/classical/jacobi.jl b/src/classical/jacobi.jl index bb26390..fae9694 100644 --- a/src/classical/jacobi.jl +++ b/src/classical/jacobi.jl @@ -284,6 +284,15 @@ plotgrid(P::AbstractJacobi{T}, n::Integer) where T = ChebyshevGrid{2,T}(min(40n, plan_transform(::AbstractJacobi{T}, szs::NTuple{N,Int}, dims...) where {T,N} = error("Override") plan_transform(P::Jacobi{T}, szs::NTuple{N,Int}, dims...) where {T,N} = JacobiTransformPlan(FastTransforms.plan_th_cheb2jac!(T, szs, P.a, P.b, dims...), plan_chebyshevtransform(T, szs, dims...)) +grid(P::Normalized{T,<:AbstractJacobi{T}}, n::Integer) where T = grid(P.P, n) +function plan_transform(Q::Normalized{T,<:AbstractJacobi{T}}, szs::NTuple{N,Int}, dims=ntuple(identity,Val(N))) where {T,N} + dimsz = tuple(getindex.(Ref(szs), dims)...) # get the sizes of transformed dimensions + D = Q \ Q.P + M = MulPlan(map(dimsz) do n + Diagonal(convert(Vector, D.diag[1:n])) # convert avoids lazy arrays + end, plan_transform(Q.P, szs, dims), dims) +end + ldiv(P::Jacobi{V}, f::Inclusion{T}) where {T,V} = _op_ldiv(P, f) ldiv(P::Jacobi{V}, f::AbstractQuasiFill{T,1}) where {T,V} = _op_ldiv(P, f) function transform_ldiv(P::Jacobi{V}, f::AbstractQuasiArray) where V