You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
convert(::Type{WeightedOrthogonalPolynomial}, Q::HalfWeighted{:b,T,<:SemiclassicalJacobi}) where T =SemiclassicalJacobiWeight(Q.P.t, zero(T),Q.P.b,zero(T)) .* Q.P
400
400
convert(::Type{WeightedOrthogonalPolynomial}, Q::HalfWeighted{:c,T,<:SemiclassicalJacobi}) where T =SemiclassicalJacobiWeight(Q.P.t, zero(T),zero(T),Q.P.c) .* Q.P
401
401
402
+
convert(::Type{WeightedOrthogonalPolynomial}, Q::HalfWeighted{:ab,T,<:SemiclassicalJacobi}) where T =SemiclassicalJacobiWeight(Q.P.t, Q.P.a,Q.P.b,zero(T)) .* Q.P
403
+
convert(::Type{WeightedOrthogonalPolynomial}, Q::HalfWeighted{:bc,T,<:SemiclassicalJacobi}) where T =SemiclassicalJacobiWeight(Q.P.t, zero(T),Q.P.b,Q.P.c) .* Q.P
404
+
convert(::Type{WeightedOrthogonalPolynomial}, Q::HalfWeighted{:ac,T,<:SemiclassicalJacobi}) where T =SemiclassicalJacobiWeight(Q.P.t, Q.P.a,zero(T),Q.P.c) .* Q.P
405
+
406
+
402
407
include("derivatives.jl")
403
408
404
409
405
410
###
406
411
# Hierarchy
412
+
#
413
+
# here we build the operators lazily
407
414
###
408
415
409
-
function Base.broadcasted(::Type{SemiclassicalJacobi}, t::Number, ar::AbstractUnitRange, b::Number, c::Number)
410
-
Ps = [SemiclassicalJacobi(t, first(ar), b, c)]
411
-
for a in ar[2:end]
412
-
push!(Ps, SemiclassicalJacobi(t, a, b, c, Ps[end]))
413
-
end
414
-
Ps
416
+
mutable struct SemiclassicalJacobiFamily{T, A, B, C} <:AbstractCachedVector{SemiclassicalJacobi{T}}
417
+
data::Vector{SemiclassicalJacobi{T}}
418
+
t::T
419
+
a::A
420
+
b::B
421
+
c::C
422
+
datasize::Tuple{Int}
415
423
end
416
424
417
-
function Base.broadcasted(::Type{SemiclassicalJacobi}, t::Number, a::Number, br::AbstractUnitRange, c::Number)
418
-
Ps = [SemiclassicalJacobi(t, a, first(br), c)]
419
-
for b in br[2:end]
420
-
push!(Ps, SemiclassicalJacobi(t, a, b, c, Ps[end]))
Base.broadcasted(::Type{SemiclassicalJacobi{T}}, t::Number, a::Union{AbstractUnitRange,Number}, b::Union{AbstractUnitRange,Number}, c::Union{AbstractUnitRange,Number}) where T =
450
+
SemiclassicalJacobiFamily{T}(t, a, b, c)
451
+
452
+
453
+
_broadcast_getindex(a,k) = a[k]
454
+
_broadcast_getindex(a::Number,k) = a
455
+
456
+
function LazyArrays.cache_filldata!(P::SemiclassicalJacobiFamily, inds::AbstractUnitRange)
0 commit comments