Skip to content

Commit 549acaf

Browse files
committed
support (w .* (w .* P))
1 parent 6eea74c commit 549acaf

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/classical/jacobi.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,10 @@ broadcastbasis(::typeof(+), w_A::WeightedJacobi, w_B::Weighted{<:Any,<:Jacobi})
485485
broadcastbasis(::typeof(+), A::Jacobi, B::Weighted{<:Any,<:Jacobi{<:Any,<:Integer}}) = A
486486
broadcastbasis(::typeof(+), A::Weighted{<:Any,<:Jacobi{<:Any,<:Integer}}, B::Jacobi) = B
487487

488+
broadcasted(::LazyQuasiArrayStyle{2}, ::typeof(*), w::AbstractJacobiWeight, v::WeightedJacobi) =
489+
(w .* v.args[1]) .* v.args[2]
490+
491+
488492
function \(w_A::WeightedJacobi, w_B::WeightedJacobi)
489493
wA,A = w_A.args
490494
wB,B = w_B.args

test/test_ultraspherical.jl

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,29 @@ using ClassicalOrthogonalPolynomials: grammatrix
210210
P = Jacobi-1/2-1/2)
211211
W = Jacobi-1-1/2-1-1/2)
212212
Q = Jacobi+1-1/2+1-1/2)
213+
# a+ b = 2λ-1
213214
D = Derivative(P)
214-
t,n = 0.3,5
215+
x,n = 0.3,5
216+
# L₁
215217
@test (D*P)[t,n+1] (n+2λ)/2 * Q[t,n] # L₁
216218
# L₃L₂
217-
-(JacobiWeight(-(a+b+n),0) .* (D * (JacobiWeight(a+b+n+1,-(a+b+n)) .* D * (JacobiWeight(0,a+b+n+1) .* P))))[t,n+1]
219+
@test -(JacobiWeight(-(2λ+n),0) .* (D * (JacobiWeight(2λ+n+1,-(2λ+n-1)) .* D * (JacobiWeight(0,2λ+n) .* P))))[x,n+1]
220+
(n + 2λ)*(1 + n + 2λ) * P[x,n+1] + 2x*(1+n+2λ)* diff(P)[x,n+1] + (x^2-1) * diff(P,2)[x,n+1] (n+2λ)*(n+2λ+1)*Q[x,n+1]
221+
# L₄'L₃ == L₅'L₂
222+
@test -(JacobiWeight(0,n+1) .* (D * (JacobiWeight(-(2λ+n-1),-n) .* D * (JacobiWeight(2λ+n,0) .* P))))[x,n+1]
223+
(JacobiWeight(n+1,0) .* (D * (JacobiWeight(-n,-(2λ+n-1)) .* D * (JacobiWeight(0,2λ+n) .* P))))[x,n+1]
224+
-n * (n + 2λ) * P[x,n+1] + (1 + 2n + x + 2λ + 2x*λ)* diff(P)[x,n+1] + (x^2-1) * diff(P,2)[x,n+1]
225+
n * (n + 2λ) * P[x,n+1] + (1 + 2n - x + 2λ - 2x*λ)* diff(P)[x,n+1] + (1-x^2) * diff(P,2)[x,n+1] (n+2λ)*(n+λ+1/2)*Q[x,n]
226+
# L₅'L₄' == L₄'L₅'
227+
@test (JacobiWeight(n,0) .* (D * (JacobiWeight(1-n,n+1) .* D * (JacobiWeight(0,-n) .* P))))[x,n+1]
228+
(JacobiWeight(0,n) .* (D * (JacobiWeight(n+1,1-n) .* D * (JacobiWeight(-n,0) .* P))))[x,n+1]
229+
-n * (n - 1) * P[x,n+1] + 2x * (n-1)* diff(P)[x,n+1] - (x^2-1) * diff(P,2)[x,n+1]
230+
(n+λ-1/2)^2*Q[x,n-1]
231+
232+
P = Ultraspherical(λ)
233+
Q = Ultraspherical+1)
234+
# L₃L₂
235+
@test (n + 2λ)*(1 + n + 2λ) * P[t,n+1] + 2t*(1+n+2λ)* diff(P)[t,n+1] + (t^2-1) * diff(P,2)[t,n+1] 2λ*(1 + 2n + 2λ)Q[t,n+1]
236+
218237
end
219238
end

0 commit comments

Comments
 (0)