#include <GenEigsComplexShiftSolver.h>
Public Member Functions | |
GenEigsComplexShiftSolver (OpType *op, Index nev, Index ncv, const Scalar &sigmar, const Scalar &sigmai) | |
Public Member Functions inherited from Spectra::GenEigsBase< double, LARGEST_MAGN, DenseGenComplexShiftSolve< double >, IdentityBOp > | |
Index | compute (Index maxit=1000, double tol=1e-10, int sort_rule=LARGEST_MAGN) |
ComplexVector | eigenvalues () const |
ComplexMatrix | eigenvectors () const |
ComplexMatrix | eigenvectors (Index nvec) const |
int | info () const |
void | init () |
void | init (const double *init_resid) |
Index | num_iterations () const |
Index | num_operations () const |
Private Types | |
typedef std::complex< Scalar > | Complex |
typedef Eigen::Matrix< Complex, Eigen::Dynamic, 1 > | ComplexVector |
typedef Eigen::Index | Index |
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > | Vector |
Private Member Functions | |
void | sort_ritzpair (int sort_rule) |
Private Attributes | |
const Scalar | m_sigmai |
const Scalar | m_sigmar |
Additional Inherited Members | |
Protected Attributes inherited from Spectra::GenEigsBase< double, LARGEST_MAGN, DenseGenComplexShiftSolve< double >, IdentityBOp > | |
ArnoldiFac | m_fac |
const Index | m_n |
const Index | m_ncv |
const Index | m_nev |
Index | m_niter |
Index | m_nmatop |
DenseGenComplexShiftSolve< double > * | m_op |
ComplexVector | m_ritz_est |
ComplexVector | m_ritz_val |
ComplexMatrix | m_ritz_vec |
This class implements the eigen solver for general real matrices with a complex shift value in the shift-and-invert mode. The background knowledge of the shift-and-invert mode can be found in the documentation of the SymEigsShiftSolver class.
Scalar | The element type of the matrix. Currently supported types are float , double and long double . |
SelectionRule | An enumeration value indicating the selection rule of the shifted-and-inverted eigenvalues. The full list of enumeration values can be found in Enumerations. |
OpType | The name of the matrix operation class. Users could either use the DenseGenComplexShiftSolve wrapper class, or define their own that implements all the public member functions as in DenseGenComplexShiftSolve. |
Definition at line 40 of file GenEigsComplexShiftSolver.h.
|
private |
Definition at line 44 of file GenEigsComplexShiftSolver.h.
|
private |
Definition at line 46 of file GenEigsComplexShiftSolver.h.
|
private |
Definition at line 43 of file GenEigsComplexShiftSolver.h.
|
private |
Definition at line 45 of file GenEigsComplexShiftSolver.h.
|
inline |
Constructor to create a eigen solver object using the shift-and-invert mode.
op | Pointer to the matrix operation object. This class should implement the complex shift-solve operation of : calculating for any vector . Users could either create the object from the DenseGenComplexShiftSolve wrapper class, or define their own that implements all the public member functions as in DenseGenComplexShiftSolve. |
nev | Number of eigenvalues requested. This should satisfy , where is the size of matrix. |
ncv | Parameter that controls the convergence speed of the algorithm. Typically a larger ncv means faster convergence, but it may also result in greater memory use and more matrix operations in each iteration. This parameter must satisfy , and is advised to take . |
sigmar | The real part of the shift. |
sigmai | The imaginary part of the shift. |
Definition at line 147 of file GenEigsComplexShiftSolver.h.
|
inlineprivatevirtual |
Reimplemented from Spectra::GenEigsBase< double, LARGEST_MAGN, DenseGenComplexShiftSolve< double >, IdentityBOp >.
Definition at line 52 of file GenEigsComplexShiftSolver.h.
|
private |
Definition at line 49 of file GenEigsComplexShiftSolver.h.
|
private |
Definition at line 48 of file GenEigsComplexShiftSolver.h.