@@ -145,15 +145,25 @@ function ultra2ultraTH(::Type{S},n,λ₁,λ₂) where S
145145end
146146
147147function jac2jacTH (:: Type{S} ,n,α,β,γ,δ) where S
148- @assert β == δ
149- @assert abs (α- γ) < 1
150- @assert α+ β > - 1
151- jk = zero (S): n- one (S)
152- DL = (2 jk .+ γ .+ β .+ one (S)). * Λ .(jk,γ+ β+ one (S),β+ one (S))
153- T = TriangularToeplitz (Λ .(jk,α- γ,one (S)),:U )
154- H = Hankel (Λ .(jk,α+ β+ one (S),γ+ β+ two (S)),Λ .(jk.+ n.- one (S),α+ β+ one (S),γ+ β+ two (S)))
155- DR = Λ .(jk,β+ one (S),α+ β+ one (S))./ gamma (α- γ)
156- T,H,DL,DR
148+ if β == δ
149+ @assert abs (α- γ) < 1
150+ @assert α+ β > - 1
151+ jk = zero (S): n- one (S)
152+ DL = (2 jk .+ γ .+ β .+ one (S)). * Λ .(jk,γ+ β+ one (S),β+ one (S))
153+ T = TriangularToeplitz (Λ .(jk,α- γ,one (S)),:U )
154+ H = Hankel (Λ .(jk,α+ β+ one (S),γ+ β+ two (S)),Λ .(jk.+ n.- one (S),α+ β+ one (S),γ+ β+ two (S)))
155+ DR = Λ .(jk,β+ one (S),α+ β+ one (S))./ gamma (α- γ)
156+ T,H,DL,DR
157+ elseif α == γ
158+ T,H,DL,DR = jac2jacTH (S,n,β,α,δ,γ)
159+ ve = T. ve
160+ @inbounds for k = 2 : 2 : length (ve)
161+ ve[k] *= - 1
162+ end
163+ TriangularToeplitz (ve, :U ),H,DL,DR
164+ else
165+ throw (ArgumentError (" Cannot create Toeplitz dot Hankel, use a sequence of plans." ))
166+ end
157167end
158168
159169struct ChebyshevToLegendrePlanTH{TH}
0 commit comments