-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Closed
Description
The following errors. I can prepare a fix but I don't understand why SymTridiagonal(randn(5), randn(5)) works: I would expect it to require a length 4 off-diagonal vector. The docs don't clarify anything...
julia> A = SymTridiagonal(randn(5), randn(5))
5×5 SymTridiagonal{Float64, Vector{Float64}}:
1.54728 1.29122 ⋅ ⋅ ⋅
1.29122 1.7491 0.820245 ⋅ ⋅
⋅ 0.820245 -0.933958 0.816364 ⋅
⋅ ⋅ 0.816364 -0.2896 -0.552447
⋅ ⋅ ⋅ -0.552447 0.669905
julia> eigvals(A)
ERROR: DimensionMismatch("ev has length 5 but needs one less than dv's length, 5)")
Stacktrace:
[1] stev!(job::Char, dv::Vector{Float64}, ev::Vector{Float64})
@ LinearAlgebra.LAPACK ~/Projects/julia-1.6/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/lapack.jl:3774
[2] eigvals!
@ ~/Projects/julia-1.6/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/tridiag.jl:293 [inlined]
[3] eigvals(A::SymTridiagonal{Float64, Vector{Float64}})
@ LinearAlgebra ~/Projects/julia-1.6/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/tridiag.jl:294
[4] top-level scope
@ REPL[3]:1Metadata
Metadata
Assignees
Labels
No labels