Closed ariasanovsky closed 9 months ago
Output of rustc --version --verbose
rustc 1.75.0-nightly (fee5518cd 2023-11-05)
binary: rustc
commit-hash: fee5518cdd4435c60a57fe3bb734fc1a14abeb7a
commit-date: 2023-11-05
host: x86_64-unknown-linux-gnu
release: 1.75.0-nightly
LLVM version: 17.0.4
Smallest simple graph adjacency matrix I found that overflows
[
[0.0, 1.0, 1.0, 0.0, 0.0, 1.0],
[1.0, 0.0, 0.0, 1.0, 1.0, 1.0],
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 1.0, 0.0, 0.0, 1.0, 1.0],
[0.0, 1.0, 0.0, 1.0, 0.0, 1.0],
[1.0, 1.0, 0.0, 1.0, 1.0, 0.0],
]
Actual eigenvalues:
[ 3.35385579 -1.87740375 1. -0.47645204 -1. -1. ]
also fixed in 0.15.0 keep up the good work o7
Describe the bug
For many graph adjacency matrices with small eigenvalues,
faer
crashes on ani32
overflow when computing eigenvalues as a self-adjoint matrix.The precise line is
iter += 1;
.My current workaround to avoid
selfadjoint_eigenvalues()
isTo Reproduce
Expected behavior Expected
eigs
to return a vector of $20$ eigenvalues.For example,
Additional context Feel free to suggest a different method to use!
Since these matrices have a few very small eigenvalues, perhaps it is appropriate to tweak the high-level function to instead calculate a good guess for
consider_zero_threshold
in the higher-level API.In this instance, the value equals
2.2250738585072014e-308
.