Skip to content

Commit 4947845

Browse files
add a test for nonzero diagonal jacobi matrices
1 parent c0532d3 commit 4947845

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/GramMatrix.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ GramMatrix(W::WT, X::XT) where {T, WT <: AbstractMatrix{T}, XT <: AbstractMatrix
5656
#
5757
function compute_skew_generators(W::GramMatrix{T}) where T
5858
X = W.X
59-
m, n = size(W)
59+
n = size(W, 1)
6060
G = zeros(T, n, 2)
6161
G[n, 1] = one(T)
62-
G[:, 2] .= W[n-1, :]*X[n-1, n] - X'W[:, n]
62+
G[:, 2] .= W[n-1, :]*X[n-1, n] + W[n, :]*X[n, n] - X'W[:, n]
6363
return G
6464
end
6565

test/GramMatrixtests.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ using FastTransforms, BandedMatrices, LazyArrays, LinearAlgebra, Test
2828
@test bandwidths(G) == (b, b)
2929
F = cholesky(G)
3030
@test F.L*F.L' W
31+
32+
X = BandedMatrix(SymTridiagonal(T[2n-1 for n in 1:n+b], T[-n for n in 1:n+b-1])) # Laguerre X, tests nonzero diagonal
33+
W = I+X^2+X^4
34+
W = Symmetric(W[1:n, 1:n])
35+
X = BandedMatrix(SymTridiagonal(T[2n-1 for n in 1:n], T[-n for n in 1:n-1])) # Laguerre X
36+
G = GramMatrix(W, X)
37+
@test bandwidths(G) == (b, b)
38+
F = cholesky(G)
39+
@test F.L*F.L' W
3140
end
3241
W = reshape([i for i in 1.0:n^2], n, n)
3342
X = reshape([i for i in 1.0:4n^2], 2n, 2n)

0 commit comments

Comments
 (0)