Skip to content

Commit 798476b

Browse files
committed
remove literal power special case
1 parent d4820cc commit 798476b

File tree

4 files changed

+24
-19
lines changed

4 files changed

+24
-19
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.16"
4+
version = "0.15.2"
55

66

77
[deps]

src/ClassicalOrthogonalPolynomials.jl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,29 @@ gives the singularity structure of an expansion, e.g.,
212212
"""
213213
singularities(w) = singularities_layout(MemoryLayout(w), w)
214214

215+
216+
215217
struct NoSingularities end
216218

219+
## default is to just assume no singularities
220+
singularitiesbroadcast(_...) = NoSingularities()
221+
222+
for op in (:+, :*)
223+
@eval singularitiesbroadcast(::typeof($op), A, B, C, D...) = singularitiesbroadcast(*, singularitiesbroadcast(*, A, B), C, D...)
224+
@eval singularitiesbroadcast(::typeof($op), ::NoSingularities, ::NoSingularities) = NoSingularities()
225+
@eval singularitiesbroadcast(::typeof($op), ::NoSingularities, ::NoSingularities, ::NoSingularities) = NoSingularities()
226+
end
227+
228+
singularitiesbroadcast(::typeof(*), ::NoSingularities, b) = b
229+
singularitiesbroadcast(::typeof(*), a, ::NoSingularities) = a
230+
231+
232+
# for singularitiesbroadcast(literal_pow), ^, ...)
233+
# singularitiesbroadcast(F::Function, G::Function, V::SubQuasiArray, K) = singularitiesbroadcast(F, G, parent(V), K)[parentindices(V)...]
234+
# singularitiesbroadcast(F, V::SubQuasiArray...) = singularitiesbroadcast(F, map(parent,V)...)[parentindices(V...)...]
235+
# singularitiesbroadcast(F, V::NoSingularities...) = NoSingularities() # default is to assume smooth
236+
237+
217238

218239

219240
basis_axes(ax::Inclusion{<:Any,<:AbstractInterval}, v) = convert(AbstractQuasiMatrix{eltype(v)}, basis_singularities(ax, singularities(v)))

src/classical/jacobi.jl

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -94,24 +94,6 @@ singularities(a::AbstractAffineQuasiVector) = singularities(a.x)
9494

9595
singularities(w::AbstractJacobiWeight) = w
9696

97-
## default is to just assume no singularities
98-
singularitiesbroadcast(_...) = NoSingularities()
99-
100-
for op in (:+, :*)
101-
@eval singularitiesbroadcast(::typeof($op), A, B, C, D...) = singularitiesbroadcast(*, singularitiesbroadcast(*, A, B), C, D...)
102-
@eval singularitiesbroadcast(::typeof($op), ::NoSingularities, ::NoSingularities) = NoSingularities()
103-
@eval singularitiesbroadcast(::typeof($op), ::NoSingularities, ::NoSingularities, ::NoSingularities) = NoSingularities()
104-
end
105-
106-
singularitiesbroadcast(::typeof(*), ::NoSingularities, b) = b
107-
singularitiesbroadcast(::typeof(*), a, ::NoSingularities) = a
108-
109-
110-
# for singularitiesbroadcast(literal_pow), ^, ...)
111-
singularitiesbroadcast(F::Function, G::Function, V::SubQuasiArray, K) = singularitiesbroadcast(F, G, parent(V), K)[parentindices(V)...]
112-
singularitiesbroadcast(F, V::SubQuasiArray...) = singularitiesbroadcast(F, map(parent,V)...)[parentindices(V...)...]
113-
singularitiesbroadcast(F, V::NoSingularities...) = NoSingularities() # default is to assume smooth
114-
11597

11698
abstract type AbstractJacobi{T} <: OrthogonalPolynomial{T} end
11799

src/classical/legendre.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ singularitiesbroadcast(::typeof(^), L::LegendreWeight, ::NoSingularities) = L
7474
singularitiesbroadcast(::typeof(/), ::NoSingularities, L::LegendreWeight) = L # can't find roots
7575

7676
basis_singularities(ax::Inclusion, ::NoSingularities) = legendre(ax)
77+
basis_singularities(ax, sing) = basis_singularities(sing) # fallback for back compatibility
78+
7779

7880
"""
7981
Legendre{T=Float64}(a,b)

0 commit comments

Comments
 (0)