Releases: JuliaLinearAlgebra/ArnoldiMethod.jl
v0.4.0
ArnoldiMethod v0.4.0
-
BREAKING: The target structs
LM
,SR
,LR
,SI
,LI
are no longer exported. You have to
import them explicitly:using ArnoldiMethod: LM
. But easier is to update your code from structs
LM()
to symbols:LM
(which requires at least v0.3). -
ArnoldiMethod.jl now exports
partialschur!
andArnoldiWorkspace
, which can be used to
pre-allocate (custom) matrices. Also it can be used to run the algorithm from an existing partial
Schur decomposition.
Merged pull requests:
- Support starting vec (#141) (@haampie)
- Add Apple Silicon to CI (#142) (@ViralBShah)
- Allow passing an initial partial Schur decomposition (#143) (@haampie)
- do not export LM, SR, LR, SI, LI (#144) (@haampie)
Closed issues:
- Feature request: Allow an initial start-vector (#91)
v0.3.5
ArnoldiMethod v0.3.5
- ArnoldiMethod.jl now exports
partialschur!
andArnoldiWorkspace
, which
can be used to pre-allocate (custom) matrices. Also it can be used to run the
algorithm from an existing partial Schur decomposition.
Merged pull requests:
- Support starting vec (#141) (@haampie)
- Add Apple Silicon to CI (#142) (@ViralBShah)
- Allow passing an initial partial Schur decomposition (#143) (@haampie)
Closed issues:
- Feature request: Allow an initial start-vector (#91)
v0.3.4
ArnoldiMethod v0.3.4
This release implements purging of converged, unwanted Ritz values. This should improve stability of the Krylov-Schur restart, as previously converged but unwanted Ritz values caused tiny residuals, which appear in a vector we need to compute a reflector for, leading to instabilities. For additional stability, we also implement the initial rotations in the Krylov-Schur restart through Given's rotations instead of Householder reflections. The square H matrix is brought back with Householder reflections afterwards.
v0.3.3
ArnoldiMethod v0.3.3
Improve stability of the dense eigensolver: replace "perfect" Wilkinson shift for 2x2 blocks with a single stable and hand-crafted rotation.
v0.3.2
v0.3.1
ArnoldiMethod v0.3.1
Fixes the edge case of an all zeros matrix. Previous ArnoldiMethod.jl would not converge, and end up with NaNs, now it finds a proper eigenbasis. This edge case should help in general with robustness with repeated eigenvalues at exactly zero.
v0.3.0
ArnoldiMethod v0.3.0
- Fixed a bug where locking and purging destroyed the partial Schur decomposition, which was triggered in case of irregular convergence of eigenvalues closest to the target, typically seen in matrices with repeated eigenvalues close to the target.
- Add support for
:LM
,:SR
,:LR
,:SI
and:LI
symbols forpartialschur(..., which=...)
, as seen in Arpack.jl and KrylovKit.jl. - General maintenance of CI, docs and package structure.
- Added
CITATION.cff
v0.2.0
ArnoldiMethod v0.2.0
Closed issues:
- BigFloat matrix in partialschur() does not work (#94)
Merged pull requests:
v0.1.0
ArnoldiMethod v0.1.0
Closed issues:
- Segmentation fault when asking for zero eigenvalues (#97)
- Eigenvalues are sorted in Julia 1.2, breaking the tests here (#98)
- UUID mismatch in Project.toml and JuliaRegistries/General Package.toml (#103)
Merged pull requests:
- Fixed segmentation fault when eigen values are less than 1 (#100) (@krish8484)
- Add compat for StaticArrays (#102) (@jaakkor2)
Bug fixes
- Fixes a bug where the last eigenvalue listed in
PartialSchur.eigenvalues
was not the last converged eigenvalue, but simply the last Ritz value. - Fixes a bug where single shifts were used in the case of numerically repeated eigenvalues and the QR algorithm would stagnate
- Fixes a bug where blocks with equal eigenvalues where swapped, resulting in a singular Sylvester equation and Inf's and NaN's in the Hessenberg matrix.