- Added the generalized eigen solver
SymGEigsSolver
in the regular inverse mode - Added the wrapper class
SparseRegularInverse
that can be used withSymGEigsSolver
in the regular inverse mode - Added test code for generalized eigen solver in the regular inverse mode
- Improved the numerical precision and stability of some internal linear
algebra classes, including
TridiagEigen
,UpperHessenbergEigen
, andDoubleShiftQR
- API change: The
x_in
argument in matrix operation functions, e.g.perform_op()
, is now labelled to be constant - Fixed a bug that
GenEigsComplexShiftSolver
gave wrong results when transforming back the eigenvalues, discovered by @jdbancal - Updated included Catch to v1.7.0
- Documentation improvement
- Added an
Uplo
template parameter to theDenseSymShiftSolve
class - Added the generalized eigen solver
SymGEigsSolver
in the Cholesky mode - Added the wrapper classes
DenseCholesky
andSparseCholesky
that can be used withSymGEigsSolver
in the Cholesky mode - Added test code for generalized eigen solver in the Cholesky mode
- Updated included Catch to v1.5.7
- Improved documentation
- Updated Travis CI script
- Allowing basic math functions such as
abs()
andsqrt()
to be overloaded (avoid usingstd::abs
andstd::sqrt
directly), thanks to @jdbancal. This makes it possible to use user-defined float number types with Spectra - Replaced other
std
functions by their Eigen counterparts, for example usingEigen::NumTraits<Scalar>::epsilon()
to substitutestd::numeric_limits<Scalar>::epsilon()
- Improved the numerical stability of several operations, e.g. the function
hypot(x, y)
is used to computesqrt(x^2 + y^2)
- More careful use of "approximate zero" constants
- Fixed an out-of-bound bug detected by @jdbancal
- Added the wrapper classes
SparseSymMatProd
andSparseSymShiftSolve
for sparse symmetric matrices - Added the wrapper class
SparseGenRealShiftSolve
for general sparse matrices - Added tests for sparse matrices
- Using Travis CI for automatic unit test
- Updated included Catch to v1.5.6
- API change: Each eigen solver was moved to its own header file.
For example to use
SymEigsShiftSolver
one needs to include<SymEigsShiftSolver.h>
- Header files for internal use were relocated
- Benchmark script now outputs number of matrix operations
- Added this change log
- Added a simple built-in random number generator, so that the algorithm was made to be deterministic
- Added the wrapper class
DenseSymMatProd
for symmetric matrices
- Improved Arnoldi factorization
- Iteratively corrects orthogonality
- Creates new residual vector when invariant subspace is found
- Stability for matrices with repeated eigenvalues is greatly improved
- Adjusted deflation tolerance in double shift QR
- Updated result analyzer
- Updated included Catch to v1.3.4
- Updated copyright information
- API change: Default operator of
SymEigsSolver
was changed fromDenseGenMatProd
toDenseSymMatProd
- Initial release of Spectra