@@ -54,23 +54,24 @@ hasboundedendpoints(w::AbstractJacobiWeight) = w.a ≥ 0 && w.b ≥ 0
5454singularities (a:: AbstractAffineQuasiVector ) = singularities (a. x)
5555
5656
57+ singularities (w:: JacobiWeight ) = w
58+
59+
5760# # default is to just assume no singularities
5861singularitiesbroadcast (_... ) = NoSingularities ()
5962
6063for op in (:+ , :* )
6164 @eval singularitiesbroadcast (:: typeof ($ op), A, B, C, D... ) = singularitiesbroadcast (* , singularitiesbroadcast (* , A, B), C, D... )
6265end
6366
64- singularitiesbroadcast (:: typeof (* ), V:: Union{NoSingularities,SubQuasiArray} ...) = singularitiesbroadcast (* , map (_parent,V)... )[_parentindices (V... )... ]
67+ singularitiesbroadcast (:: typeof (* ), V:: SubQuasiArray... ) = singularitiesbroadcast (* , map (parent,V)... )[parentindices (V... )... ]
68+
6569
6670
67- _parent (:: NoSingularities ) = NoSingularities ()
68- _parent (a) = parent (a)
69- _parentindices (a:: NoSingularities , b... ) = _parentindices (b... )
70- _parentindices (a, b... ) = parentindices (a)
7171# for singularitiesbroadcast(literal_pow), ^, ...)
7272singularitiesbroadcast (F:: Function , G:: Function , V:: SubQuasiArray , K) = singularitiesbroadcast (F, G, parent (V), K)[parentindices (V)... ]
73- singularitiesbroadcast (F, V:: Union{NoSingularities,SubQuasiArray} ...) = singularitiesbroadcast (F, map (_parent,V)... )[_parentindices (V... )... ]
73+ singularitiesbroadcast (F, V:: SubQuasiArray... ) = singularitiesbroadcast (F, map (parent,V)... )[parentindices (V... )... ]
74+ singularitiesbroadcast (F, V:: NoSingularities... ) = NoSingularities () # default is to assume smooth
7475
7576
7677abstract type AbstractJacobi{T} <: OrthogonalPolynomial{T} end
@@ -107,10 +108,11 @@ AbstractQuasiMatrix{T}(w::Jacobi) where T = Jacobi{T}(w.a, w.b)
107108
108109jacobi (a,b) = Jacobi (a,b)
109110jacobi (a,b, d:: AbstractInterval{T} ) where T = Jacobi {float(promote_type(eltype(a),eltype(b),T))} (a,b)[affine (d,ChebyshevInterval {T} ()), :]
111+ jacobi (a,b, d:: ChebyshevInterval{T} ) where T = Jacobi {float(promote_type(eltype(a),eltype(b),T))} (a,b)
110112
111113Jacobi (P:: Legendre{T} ) where T = Jacobi (zero (T), zero (T))
112114
113- basis_singularities (w :: JacobiWeight ) = Weighted ( Jacobi (w . a, w . b))
115+
114116
115117
116118"""
0 commit comments