@@ -54,23 +54,24 @@ hasboundedendpoints(w::AbstractJacobiWeight) = w.a ≥ 0 && w.b ≥ 0
54
54
singularities (a:: AbstractAffineQuasiVector ) = singularities (a. x)
55
55
56
56
57
+ singularities (w:: JacobiWeight ) = w
58
+
59
+
57
60
# # default is to just assume no singularities
58
61
singularitiesbroadcast (_... ) = NoSingularities ()
59
62
60
63
for op in (:+ , :* )
61
64
@eval singularitiesbroadcast (:: typeof ($ op), A, B, C, D... ) = singularitiesbroadcast (* , singularitiesbroadcast (* , A, B), C, D... )
62
65
end
63
66
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
+
65
69
66
70
67
- _parent (:: NoSingularities ) = NoSingularities ()
68
- _parent (a) = parent (a)
69
- _parentindices (a:: NoSingularities , b... ) = _parentindices (b... )
70
- _parentindices (a, b... ) = parentindices (a)
71
71
# for singularitiesbroadcast(literal_pow), ^, ...)
72
72
singularitiesbroadcast (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
74
75
75
76
76
77
abstract type AbstractJacobi{T} <: OrthogonalPolynomial{T} end
@@ -107,10 +108,11 @@ AbstractQuasiMatrix{T}(w::Jacobi) where T = Jacobi{T}(w.a, w.b)
107
108
108
109
jacobi (a,b) = Jacobi (a,b)
109
110
jacobi (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)
110
112
111
113
Jacobi (P:: Legendre{T} ) where T = Jacobi (zero (T), zero (T))
112
114
113
- basis_singularities (w :: JacobiWeight ) = Weighted ( Jacobi (w . a, w . b))
115
+
114
116
115
117
116
118
"""
0 commit comments