Skip to content

Commit 22c0bc5

Browse files
committed
Assume NoSingularities by default
1 parent 1ed1f7e commit 22c0bc5

File tree

5 files changed

+17
-3
lines changed

5 files changed

+17
-3
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ClassicalOrthogonalPolynomials"
22
uuid = "b30e2e7b-c4ee-47da-9d5f-2c5c27239acd"
33
authors = ["Sheehan Olver <[email protected]>"]
4-
version = "0.13.5"
4+
version = "0.13.6"
55

66
[deps]
77
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"

src/ClassicalOrthogonalPolynomials.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,10 @@ singularitiesview(w, ::Inclusion) = w # for now just assume it doesn't change
211211
singularitiesview(w, ind) = view(w, ind)
212212
singularities(S::SubQuasiArray) = singularitiesview(singularities(parent(S)), parentindices(S)[1])
213213

214-
basis_axes(::Inclusion{<:Any,<:AbstractInterval}, v) = convert(AbstractQuasiMatrix{eltype(v)}, basis_singularities(singularities(v)))
214+
215+
basis_singularities(ax, ::NoSingularities) = basis(ax)
216+
basis_singularities(ax, sing) = basis_singularities(sing)
217+
basis_axes(ax::Inclusion{<:Any,<:AbstractInterval}, v) = convert(AbstractQuasiMatrix{eltype(v)}, basis_singularities(ax, singularities(v)))
215218

216219
struct NoSingularities end
217220

src/classical/jacobi.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ hasboundedendpoints(w::AbstractJacobiWeight) = w.a ≥ 0 && w.b ≥ 0
5454
singularities(a::AbstractAffineQuasiVector) = singularities(a.x)
5555

5656

57+
## default is to just assume no singularities
58+
singularitiesbroadcast(_...) = NoSingularities()
59+
5760
for op in (:+, :*)
5861
@eval singularitiesbroadcast(::typeof($op), A, B, C, D...) = singularitiesbroadcast(*, singularitiesbroadcast(*, A, B), C, D...)
5962
end
@@ -66,7 +69,6 @@ _parentindices(a, b...) = parentindices(a)
6669
# for singularitiesbroadcast(literal_pow), ^, ...)
6770
singularitiesbroadcast(F::Function, G::Function, V::SubQuasiArray, K) = singularitiesbroadcast(F, G, parent(V), K)[parentindices(V)...]
6871
singularitiesbroadcast(F, V::Union{NoSingularities,SubQuasiArray}...) = singularitiesbroadcast(F, map(_parent,V)...)[_parentindices(V...)...]
69-
singularitiesbroadcast(::typeof(*), V::Union{NoSingularities,SubQuasiArray}...) = singularitiesbroadcast(*, map(_parent,V)...)[_parentindices(V...)...]
7072

7173

7274
abstract type AbstractJacobi{T} <: OrthogonalPolynomial{T} end

src/classical/legendre.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ for op in (:+, :-, :*)
3737
end
3838
singularitiesbroadcast(::typeof(^), L::LegendreWeight, ::NoSingularities) = L
3939
singularitiesbroadcast(::typeof(/), ::NoSingularities, L::LegendreWeight) = L # can't find roots
40+
singularitiesbroadcast(::typeof(*), V::Union{NoSingularities,SubQuasiArray,LegendreWeight}...) = singularitiesbroadcast(*, map(_parent,V)...)[_parentindices(V...)...]
4041

4142
singularities(::AbstractJacobi{T}) where T = LegendreWeight{T}()
4243
singularities(::Inclusion{T,<:ChebyshevInterval}) where T = LegendreWeight{T}()

test/test_ultraspherical.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,4 +183,12 @@ using ClassicalOrthogonalPolynomials: grammatrix
183183
L = Weighted(Jacobi(1,0)) \ Weighted(Ultraspherical(3/2))
184184
@test L[1:10,1:10] == (Weighted(Jacobi(1,0)) \ Weighted(Jacobi(1,1)))[1:10,1:10] * (Jacobi(1,1) \ Ultraspherical(3/2))[1:10,1:10]
185185
end
186+
187+
@testset "expand w/ no singularities" begin
188+
z = 2
189+
P = Legendre()
190+
C = Ultraspherical(-1/2)
191+
x = axes(P,1)
192+
@test sum(@.(ultrasphericalc(1, -1/2, x)/(z-x))) sum(C[:,2] ./ (z .- x))
193+
end
186194
end

0 commit comments

Comments
 (0)