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
Base.broadcasted(::Type{SemiclassicalJacobi{T}}, t::Number, a::Union{AbstractUnitRange,Number}, b::Union{AbstractUnitRange,Number}, c::Union{AbstractUnitRange,Number}) where T =
661
-
SemiclassicalJacobiFamily{T}(t, a, b, c)
662
-
663
-
664
-
_broadcast_getindex(a,k) = a[k]
665
-
_broadcast_getindex(a::Number,k) = a
666
-
667
-
function LazyArrays.cache_filldata!(P::SemiclassicalJacobiFamily, inds::AbstractUnitRange)
668
-
t,a,b,c = P.t,P.a,P.b,P.c
669
-
isrange = P.b isa AbstractUnitRange
670
-
for k in inds
671
-
# If P.data[k-2] is not normalised (aka b = -1), cholesky fails. With the current design, this is only a problem if P.b
672
-
# is a range since we can translate between polynomials that both have b = -1.
673
-
Pprev = (isrange && P.b[k-2] ==-1) ? P.data[k-1] : P.data[k-2] # isrange && P.b[k-2] == -1 could also be !isnormalized(P.data[k-2])
# here we construct hierarchies of c weight sums by means of contiguous recurrence relations
681
-
###
682
-
683
-
""""
684
-
A SemiclassicalJacobiCWeightFamily
685
-
686
-
is a vector containing a sequence of weights of the form `x^a * (1-x)^b * (t-x)^c` where `a` and `b` are scalars and `c` is a range of values with integer spacing; where `x in 0..1`. It is automatically generated when calling `SemiclassicalJacobiWeight.(t,a,b,cmin:cmax)`.
functionSemiclassicalJacobiCWeightFamily{T}(data::Vector, t, a, b, c) where T
702
-
checkrangesizes(a, b, c)
703
-
SemiclassicalJacobiCWeightFamily{T,typeof(c)}(data, t, a, b, c, (length(data),))
704
-
end
705
-
706
-
SemiclassicalJacobiCWeightFamily(t, a, b, c) =SemiclassicalJacobiCWeightFamily{float(promote_type(typeof(t),eltype(a),eltype(b),eltype(c)))}(t, a, b, c)
707
-
functionSemiclassicalJacobiCWeightFamily{T}(t::Number, a::Number, b::Number, c::Union{AbstractUnitRange,Number}) where T
708
-
returnSemiclassicalJacobiCWeightFamily{T}(SemiclassicalJacobiWeight.(t,a:a,b:b,c), t, a, b, c)
Base.broadcasted(::Type{SemiclassicalJacobi{T}}, t::Number, a::Union{AbstractUnitRange,Number}, b::Union{AbstractUnitRange,Number}, c::Union{AbstractUnitRange,Number}) where T =
50
+
SemiclassicalJacobiFamily{T}(t, a, b, c)
51
+
52
+
53
+
_broadcast_getindex(a,k) = a[k]
54
+
_broadcast_getindex(a::Number,k) = a
55
+
56
+
function LazyArrays.cache_filldata!(P::SemiclassicalJacobiFamily, inds::AbstractUnitRange)
57
+
t,a,b,c = P.t,P.a,P.b,P.c
58
+
isrange = P.b isa AbstractUnitRange
59
+
for k in inds
60
+
# If P.data[k-2] is not normalised (aka b = -1), cholesky fails. With the current design, this is only a problem if P.b
61
+
# is a range since we can translate between polynomials that both have b = -1.
62
+
Pprev = (isrange && P.b[k-2] ==-1) ? P.data[k-1] : P.data[k-2] # isrange && P.b[k-2] == -1 could also be !isnormalized(P.data[k-2])
# here we construct hierarchies of c weight sums by means of contiguous recurrence relations
70
+
###
71
+
72
+
""""
73
+
A SemiclassicalJacobiCWeightFamily
74
+
75
+
is a vector containing a sequence of weights of the form `x^a * (1-x)^b * (t-x)^c` where `a` and `b` are scalars and `c` is a range of values with integer spacing; where `x in 0..1`. It is automatically generated when calling `SemiclassicalJacobiWeight.(t,a,b,cmin:cmax)`.
functionSemiclassicalJacobiCWeightFamily{T}(data::Vector, t, a, b, c) where T
91
+
checkrangesizes(a, b, c)
92
+
SemiclassicalJacobiCWeightFamily{T,typeof(c)}(data, t, a, b, c, (length(data),))
93
+
end
94
+
95
+
SemiclassicalJacobiCWeightFamily(t, a, b, c) =SemiclassicalJacobiCWeightFamily{float(promote_type(typeof(t),eltype(a),eltype(b),eltype(c)))}(t, a, b, c)
96
+
functionSemiclassicalJacobiCWeightFamily{T}(t::Number, a::Number, b::Number, c::Union{AbstractUnitRange,Number}) where T
97
+
returnSemiclassicalJacobiCWeightFamily{T}(SemiclassicalJacobiWeight.(t,a:a,b:b,c), t, a, b, c)
0 commit comments