From 8a9e66aca9cc6dbaecd14f783bddb90edb704777 Mon Sep 17 00:00:00 2001 From: lkdvos Date: Wed, 6 May 2026 14:21:00 -0400 Subject: [PATCH] Pass correct views to `SymTridiagonal` --- src/factorizations/lanczos.jl | 4 +++- test/issues.jl | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/factorizations/lanczos.jl b/src/factorizations/lanczos.jl index 7d8a7c3a..01ffdff4 100644 --- a/src/factorizations/lanczos.jl +++ b/src/factorizations/lanczos.jl @@ -50,7 +50,9 @@ function basis(F::LanczosFactorization) return length(F.V) == F.k ? F.V : error("Not keeping vectors during Lanczos factorization") end -rayleighquotient(F::LanczosFactorization) = SymTridiagonal(F.αs, F.βs) +function rayleighquotient(F::LanczosFactorization) + return SymTridiagonal(view(F.αs, 1:(F.k)), view(F.βs, 1:(F.k - 1))) +end residual(F::LanczosFactorization) = F.r @inbounds normres(F::LanczosFactorization) = F.βs[F.k] rayleighextension(F::LanczosFactorization) = SimpleBasisVector(F.k, F.k) diff --git a/test/issues.jl b/test/issues.jl index f2edc5d3..cdc9581f 100644 --- a/test/issues.jl +++ b/test/issues.jl @@ -27,3 +27,10 @@ end @test info.numops == 2 @test info.normres == 0.0 end + +# https://github.com/Jutho/KrylovKit.jl/issues/156 +@testset "Issue #156" begin + vals, vecs, info = eigsolve([1 0; 0 1]) + @test info.converged ≥ 1 + @test all(≈(1.0), vals[1:(info.converged)]) +end