Now rARPACK becomes a simple shell of the RSpectra package.
Updated the backend Spectra library, which fixed the compatibility with Eigen >= 3.2.6
Fixed a bug that causes the algorithm not converging on some matrices
Fixed a compilation problem on Solaris
The backend program is now changed from ARPACK to Spectra, which brings cleaner code and better performance.
eigs_sym()
now accepts more matrix types.
Added a C interface for other packages to link to.
Support for implicit matrix, contributed by Jiali Mei.
User can supply a function FUN
rather than an explicit
matrix to eigs()
, and the eigenvalues/eigenvectors of this
operator will be computed. FUN(x, args)
must return a vector of the same length as x
.
eigs()
will test the symmetry of matrix before actual
computation, since symmetric matrices can guarantee real
eigenvalues and eigenvectors, and the numerical result is more
stable.
C++ code of svds()
is completely rewritten. Now it is more
readable and easier to maintain.
Fix a bug possibly coming from ARPACK, which sometimes gives incorrect result of complex eigenvectors.
Avoid using a C random number generator.
Add support for new matrix types: dgeMatrix and dgRMatrix.
eigs()
now allows a full Eigen Decomposition, meaning that
all the eigenvalues are calculated. In this case eigs()
is
simply a wrapper of eigen()
, and with a warning issued.
Ditto for svds()
.
Rewrite C++ code using classes and templates.
Fix errors in checking the values of k
and ncv
.
Add svds()
function to calculate truncated SVD.
Now sort eigenvalues in decreasing order.
Rename eigs.sym()
to eigs_sym()
to avoid confusion.
Fix a matrix out-of-bound error.
Implement shift-and-invert mode for all supported eigen problems.
Update arpack-ng to 3.1.4.
Now eigs()
supports real symmetric matrices.
Now eigs()
supports sparse real nonsymmetric matrices of the
class dgCMatrix, defined in the Matrix package.
Initial version. For now eigs()
supports dense real
nonsymmetric matrices.