Skip to content

Releases: JuliaLinearAlgebra/ArnoldiMethod.jl

v0.4.0

22 Feb 10:56
Compare
Choose a tag to compare

ArnoldiMethod v0.4.0

Diff since v0.3.4

  • 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! and ArnoldiWorkspace, 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:

Closed issues:

  • Feature request: Allow an initial start-vector (#91)

v0.3.5

22 Feb 11:28
Compare
Choose a tag to compare

ArnoldiMethod v0.3.5

Diff since v0.3.4

  • ArnoldiMethod.jl now exports partialschur! and ArnoldiWorkspace, 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:

Closed issues:

  • Feature request: Allow an initial start-vector (#91)

v0.3.4

18 Feb 23:30
Compare
Choose a tag to compare

ArnoldiMethod v0.3.4

Diff since v0.3.3

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

17 Feb 22:26
Compare
Choose a tag to compare

ArnoldiMethod v0.3.3

Diff since v0.3.2

Improve stability of the dense eigensolver: replace "perfect" Wilkinson shift for 2x2 blocks with a single stable and hand-crafted rotation.

v0.3.2

17 Feb 22:05
Compare
Choose a tag to compare

Fix a bug where ArnoldiMethod.jl would accidentally use eps(typeof(tol)) in the stopping criterion instead of the matrix number type. So, with say BigFloat and tol = 1e-30 it would converge to 1e-16 accuracy instead of 1e-30.

v0.3.1

13 Feb 18:34
Compare
Choose a tag to compare

ArnoldiMethod v0.3.1

Diff since v0.3.0

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

13 Feb 12:46
526219d
Compare
Choose a tag to compare

ArnoldiMethod v0.3.0

Diff since v0.2.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 for partialschur(..., which=...), as seen in Arpack.jl and KrylovKit.jl.
  • General maintenance of CI, docs and package structure.
  • Added CITATION.cff

v0.2.0

19 Feb 17:42
Compare
Choose a tag to compare

ArnoldiMethod v0.2.0

Diff since v0.1.0

Closed issues:

  • BigFloat matrix in partialschur() does not work (#94)

Merged pull requests:

v0.1.0

17 Dec 16:52
Compare
Choose a tag to compare

ArnoldiMethod v0.1.0

Diff since v0.0.4

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:

Bug fixes

13 Sep 14:58
d44bac4
Compare
Choose a tag to compare
  • 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.