You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -195,18 +196,19 @@ function semiclassical_jacobimatrix(Q::SemiclassicalJacobi, a, b, c)
195
196
returnsemiclassical_jacobimatrix(newQ, a, b, c)
196
197
end
197
198
199
+
X =jacobimatrix(Q)
198
200
ifisone(Δa/2) &&iszero(Δb) &&iszero(Δc) # raising by 2
199
-
qr_jacobimatrix(Q.X,Q)
201
+
qr_jacobimatrix(X,X)[1]
200
202
elseifiszero(Δa) &&isone(Δb/2) &&iszero(Δc)
201
-
qr_jacobimatrix(I-Q.X,Q)
203
+
qr_jacobimatrix(I-X,X)[1]
202
204
elseifiszero(Δa) &&iszero(Δb) &&isone(Δc/2)
203
-
qr_jacobimatrix(Q.t*I-Q.X,Q)
205
+
qr_jacobimatrix(Q.t*I-X,X)[1]
204
206
elseifisone(Δa) &&iszero(Δb) &&iszero(Δc) # raising by 1
205
-
cholesky_jacobimatrix(Q.X,Q)
207
+
cholesky_jacobimatrix(X,X)[1]
206
208
elseifiszero(Δa) &&isone(Δb) &&iszero(Δc)
207
-
cholesky_jacobimatrix(I-Q.X,Q)
209
+
cholesky_jacobimatrix(I-X,X)[1]
208
210
elseifiszero(Δa) &&iszero(Δb) &&isone(Δc)
209
-
cholesky_jacobimatrix(Q.t*I-Q.X,Q)
211
+
cholesky_jacobimatrix(Q.t*I-X,X)[1]
210
212
elseifisone(-Δa) &&iszero(Δb) &&iszero(Δc) # in these cases we currently have to reconstruct
211
213
#TODO: This is re-constructing. It should instead use reverse Cholesky (or an alternative)!
212
214
semiclassical_jacobimatrix(Q.t,a,b,c)
@@ -233,7 +235,9 @@ function semiclassical_jacobimatrix(Q::SemiclassicalJacobi, a, b, c)
233
235
end
234
236
end
235
237
236
-
ConvertedOrthogonalPolynomial(P::SemiclassicalJacobi{T}) where T =ConvertedOrthogonalPolynomial(orthogonalityweight(P), P.X, parent(P.X.dv).U, parent(P.X.dv).P)
ConvertedOrthogonalPolynomial(P::SemiclassicalJacobi{T}) where T =ConvertedOrthogonalPolynomial(orthogonalityweight(P), P.X, P.X.dv.data.U, Normalized(jacobi(P.b, P.a, 0..1)))
0 commit comments