@@ -461,10 +461,26 @@ function \(w_A::WeightedSemiclassicalJacobi{T}, w_B::WeightedSemiclassicalJacobi
461
461
Δb = B. b- A. b
462
462
Δc = B. c- A. c
463
463
464
- if (wA. a == A. a) && (wA. b == A. b) && (wA. c == A. c) && (wB. a == B. a) && (wB. b == B. b) && (wB. c == B. c) && isinteger (A. a) && isinteger (A. b) && isinteger (A. c) && isinteger (B. a) && isinteger (B. b) && isinteger (B. c)
465
- # k = (A \ SemiclassicalJacobiWeight(A.t,Δa,Δb,Δc))[1]
466
- k = sumquotient (SemiclassicalJacobiWeight (B. t,B. a,B. b,B. c),SemiclassicalJacobiWeight (A. t,A. a,A. b,A. c))
467
- return (ApplyArray (* ,Diagonal (Fill (k,∞)),(B \ A)))'
464
+ # k = (A \ SemiclassicalJacobiWeight(A.t,Δa,Δb,Δc))[1]
465
+ if isone (- wA. b) && isone (- wB. b)
466
+ @assert A. a + 1 == B. a && A. c + 1 == B. c
467
+ Q = SemiclassicalJacobi (B. t, B. a, one (B. b), B. c, B)
468
+ P = SemiclassicalJacobi (A. t, A. a, one (A. b), A. c, A)
469
+ wP = Weighted (P)
470
+ wQ = Weighted (Q)
471
+ R22 = wP \ wQ
472
+ r11 = A. t - 1
473
+ qw0 = SemiclassicalJacobiWeight (Q. t, Q. a, zero (Q. b), Q. c)
474
+ pw0 = SemiclassicalJacobiWeight (P. t, P. a, zero (P. b), P. c)
475
+ r21 = wP[:, 1 : 2 ] \ (qw0 .- r11 .* pw0)
476
+ d0 = Vcat (r11, R22[band (0 )])
477
+ d1 = Vcat (r21[begin ], R22[band (- 1 )])
478
+ d2 = Vcat (r21[begin + 1 ], R22[band (- 2 )])
479
+ data = Hcat (d0, d1, d2)
480
+ return _BandedMatrix (data' , 1 : ∞, 2 , 0 )
481
+ elseif (wA. a == A. a) && (wA. b == A. b) && (wA. c == A. c) && (wB. a == B. a) && (wB. b == B. b) && (wB. c == B. c) && isinteger (A. a) && isinteger (A. b) && isinteger (A. c) && isinteger (B. a) && isinteger (B. b) && isinteger (B. c)
482
+ k = sumquotient (SemiclassicalJacobiWeight (B. t,B. a,B. b,B. c),SemiclassicalJacobiWeight (A. t,A. a,A. b,A. c))
483
+ return (ApplyArray (* ,Diagonal (Fill (k,∞)),(B \ A)))'
468
484
elseif wA. a == wB. a && wA. b == wB. b && wA. c == wB. c # fallback to Christoffel–Darboux
469
485
A \ B
470
486
elseif wA. a+ 1 == wB. a && wA. b == wB. b && wA. c == wB. c
0 commit comments