QUDA
v1.1.0
A library for QCD on GPUs
|
#include <eigensolve_quda.h>
Public Member Functions | |
EigenSolver (const DiracMatrix &mat, QudaEigParam *eig_param, TimeProfile &profile) | |
Constructor for base Eigensolver class. More... | |
virtual | ~EigenSolver () |
virtual bool | hermitian ()=0 |
virtual void | operator() (std::vector< ColorSpinorField * > &kSpace, std::vector< Complex > &evals)=0 |
Computes the eigen decomposition for the operator passed to create. More... | |
void | prepareInitialGuess (std::vector< ColorSpinorField * > &kSpace) |
Check for an initial guess. If none present, populate with rands, then orthonormalise. More... | |
void | checkChebyOpMax (const DiracMatrix &mat, std::vector< ColorSpinorField * > &kSpace) |
Check for a maximum of the Chebyshev operator. More... | |
void | prepareKrylovSpace (std::vector< ColorSpinorField * > &kSpace, std::vector< Complex > &evals) |
Extend the Krylov space. More... | |
double | setEpsilon (const QudaPrecision prec) |
Set the epsilon parameter. More... | |
void | queryPrec (const QudaPrecision prec) |
Query the eigensolver precision to stdout. More... | |
void | printEigensolverSetup () |
Dump the eigensolver parameters to stdout. More... | |
void | cleanUpEigensolver (std::vector< ColorSpinorField * > &kSpace, std::vector< Complex > &evals) |
Release memory, save eigenvectors, resize the Krylov space to its original dimension. More... | |
void | matVec (const DiracMatrix &mat, ColorSpinorField &out, const ColorSpinorField &in) |
Applies the specified matVec operation: M, Mdag, MMdag, MdagM. More... | |
void | chebyOp (const DiracMatrix &mat, ColorSpinorField &out, const ColorSpinorField &in) |
Promoted the specified matVec operation: M, Mdag, MMdag, MdagM to a Chebyshev polynomial. More... | |
double | estimateChebyOpMax (const DiracMatrix &mat, ColorSpinorField &out, ColorSpinorField &in) |
Estimate the spectral radius of the operator for the max value of the Chebyshev polynomial. More... | |
void | blockOrthogonalize (std::vector< ColorSpinorField * > v, std::vector< ColorSpinorField * > &r, int j) |
Orthogonalise input vectors r against vector space v using block-BLAS. More... | |
void | orthonormalizeMGS (std::vector< ColorSpinorField * > &v, int j) |
Orthonormalise input vector space v using Modified Gram-Schmidt. More... | |
bool | orthoCheck (std::vector< ColorSpinorField * > v, int j) |
Check orthonormality of input vector space v. More... | |
void | rotateVecs (std::vector< ColorSpinorField * > &kSpace, const double *rot_array, const int offset, const int dim, const int keep, const int locked, TimeProfile &profile) |
Rotate the Krylov space. More... | |
void | rotateVecsComplex (std::vector< ColorSpinorField * > &kSpace, const Complex *rot_array, const int offset, const int dim, const int keep, const int locked, TimeProfile &profile) |
Rotate the Krylov space. More... | |
void | permuteVecs (std::vector< ColorSpinorField * > &kSpace, int *mat, int size) |
Permute the vector space using the permutation matrix. More... | |
void | blockRotate (std::vector< ColorSpinorField * > &kSpace, double *array, int rank, const range &i, const range &j, blockType b_type) |
Rotate part of kSpace. More... | |
void | blockRotateComplex (std::vector< ColorSpinorField * > &kSpace, Complex *array, int rank, const range &i, const range &j, blockType b_type, int offset) |
Rotate part of kSpace. More... | |
void | blockReset (std::vector< ColorSpinorField * > &kSpace, int js, int je, int offset) |
Copy temp part of kSpace, zero out for next use. More... | |
void | deflate (std::vector< ColorSpinorField * > &sol, const std::vector< ColorSpinorField * > &src, const std::vector< ColorSpinorField * > &evecs, const std::vector< Complex > &evals, bool accumulate=false) const |
Deflate a set of source vectors with a given eigenspace. More... | |
void | deflate (ColorSpinorField &sol, const ColorSpinorField &src, const std::vector< ColorSpinorField * > &evecs, const std::vector< Complex > &evals, bool accumulate=false) |
Deflate a given source vector with a given eigenspace. This is a wrapper variant for a single source vector. More... | |
void | deflateSVD (std::vector< ColorSpinorField * > &sol, const std::vector< ColorSpinorField * > &vec, const std::vector< ColorSpinorField * > &evecs, const std::vector< Complex > &evals, bool accumulate=false) const |
Deflate a set of source vectors with a set of left and right singular vectors. More... | |
void | deflateSVD (ColorSpinorField &sol, const ColorSpinorField &src, const std::vector< ColorSpinorField * > &evecs, const std::vector< Complex > &evals, bool accumulate=false) |
Deflate a a given source vector with a given with a set of left and right singular vectors This is a wrapper variant for a single source vector. More... | |
void | computeSVD (const DiracMatrix &mat, std::vector< ColorSpinorField * > &evecs, std::vector< Complex > &evals) |
Computes Left/Right SVD from pre computed Right/Left. More... | |
void | computeEvals (const DiracMatrix &mat, std::vector< ColorSpinorField * > &evecs, std::vector< Complex > &evals, int size) |
Compute eigenvalues and their residiua. More... | |
void | computeEvals (const DiracMatrix &mat, std::vector< ColorSpinorField * > &evecs, std::vector< Complex > &evals) |
Compute eigenvalues and their residiua. This variant compute the number of converged eigenvalues. More... | |
void | loadFromFile (const DiracMatrix &mat, std::vector< ColorSpinorField * > &eig_vecs, std::vector< Complex > &evals) |
Load and check eigenpairs from file. More... | |
void | sortArrays (QudaEigSpectrumType spec_type, int n, std::vector< Complex > &x, std::vector< Complex > &y) |
Sort array the first n elements of x according to spec_type, y comes along for the ride. More... | |
void | sortArrays (QudaEigSpectrumType spec_type, int n, std::vector< double > &x, std::vector< Complex > &y) |
Sort array the first n elements of x according to spec_type, y comes along for the ride Overloaded version with real x. More... | |
void | sortArrays (QudaEigSpectrumType spec_type, int n, std::vector< Complex > &x, std::vector< double > &y) |
Sort array the first n elements of x according to spec_type, y comes along for the ride Overloaded version with real y. More... | |
void | sortArrays (QudaEigSpectrumType spec_type, int n, std::vector< double > &x, std::vector< double > &y) |
Sort array the first n elements of x according to spec_type, y comes along for the ride Overloaded version with real x and real y. More... | |
Static Public Member Functions | |
static EigenSolver * | create (QudaEigParam *eig_param, const DiracMatrix &mat, TimeProfile &profile) |
Creates the eigensolver using the parameters given and the matrix. More... | |
Protected Attributes | |
const DiracMatrix & | mat |
QudaEigParam * | eig_param |
TimeProfile & | profile |
int | n_ev |
int | n_kr |
int | n_conv |
int | n_ev_deflate |
double | tol |
bool | reverse |
char | spectrum [3] |
bool | converged |
int | restart_iter |
int | max_restarts |
int | check_interval |
int | batched_rotate |
int | block_size |
int | iter |
int | iter_converged |
int | iter_locked |
int | iter_keep |
int | num_converged |
int | num_locked |
int | num_keep |
std::vector< double > | residua |
std::vector< ColorSpinorField * > | r |
std::vector< ColorSpinorField * > | d_vecs_tmp |
ColorSpinorField * | tmp1 |
ColorSpinorField * | tmp2 |
QudaPrecision | save_prec |
Definition at line 14 of file eigensolve_quda.h.
quda::EigenSolver::EigenSolver | ( | const DiracMatrix & | mat, |
QudaEigParam * | eig_param, | ||
TimeProfile & | profile | ||
) |
Constructor for base Eigensolver class.
eig_param | MGParam struct that defines all meta data |
profile | Timeprofile instance used to profile |
Definition at line 22 of file eigensolve_quda.cpp.
|
virtual |
Destructor for EigenSolver class.
Definition at line 1203 of file eigensolve_quda.cpp.
void quda::EigenSolver::blockOrthogonalize | ( | std::vector< ColorSpinorField * > | v, |
std::vector< ColorSpinorField * > & | r, | ||
int | j | ||
) |
Orthogonalise input vectors r against vector space v using block-BLAS.
[in] | v | Vector space |
[in] | r | Vectors to be orthogonalised |
[in] | j | Use vectors v[0:j] |
[in] | s | array of |
Definition at line 469 of file eigensolve_quda.cpp.
void quda::EigenSolver::blockReset | ( | std::vector< ColorSpinorField * > & | kSpace, |
int | js, | ||
int | je, | ||
int | offset | ||
) |
Copy temp part of kSpace, zero out for next use.
[in/out] | kSpace The current Krylov space | |
[in] | js | Start of j index |
[in] | je | End of j index |
[in] | offset | Position of extra vectors in kSpace |
Definition at line 571 of file eigensolve_quda.cpp.
void quda::EigenSolver::blockRotate | ( | std::vector< ColorSpinorField * > & | kSpace, |
double * | array, | ||
int | rank, | ||
const range & | i, | ||
const range & | j, | ||
blockType | b_type | ||
) |
Rotate part of kSpace.
[in/out] | kSpace The current Krylov space | |
[in] | array | The real rotation matrix |
[in] | rank | row rank of array |
[in] | is | Start of i index |
[in] | ie | End of i index |
[in] | js | Start of j index |
[in] | je | End of j index |
[in] | blockType | Type of caxpy(_U/L) to perform |
[in] | je | End of j index |
[in] | offset | Position of extra vectors in kSpace |
Definition at line 527 of file eigensolve_quda.cpp.
void quda::EigenSolver::blockRotateComplex | ( | std::vector< ColorSpinorField * > & | kSpace, |
Complex * | array, | ||
int | rank, | ||
const range & | i, | ||
const range & | j, | ||
blockType | b_type, | ||
int | offset | ||
) |
Rotate part of kSpace.
[in/out] | kSpace The current Krylov space | |
[in] | array | The complex rotation matrix |
[in] | rank | row rank of array |
[in] | is | Start of i index |
[in] | ie | End of i index |
[in] | js | Start of j index |
[in] | je | End of j index |
[in] | blockType | Type of caxpy(_U/L) to perform |
[in] | offset | Position of extra vectors in kSpace |
Definition at line 581 of file eigensolve_quda.cpp.
void quda::EigenSolver::chebyOp | ( | const DiracMatrix & | mat, |
ColorSpinorField & | out, | ||
const ColorSpinorField & | in | ||
) |
Promoted the specified matVec operation: M, Mdag, MMdag, MdagM to a Chebyshev polynomial.
[in] | mat | Matrix operator |
[in] | out | Output spinor |
[in] | in | Input spinor |
Definition at line 308 of file eigensolve_quda.cpp.
void quda::EigenSolver::checkChebyOpMax | ( | const DiracMatrix & | mat, |
std::vector< ColorSpinorField * > & | kSpace | ||
) |
Check for a maximum of the Chebyshev operator.
[in] | mat | The problem operator |
[in] | kSpace | The Krylov space vectors |
Definition at line 170 of file eigensolve_quda.cpp.
void quda::EigenSolver::cleanUpEigensolver | ( | std::vector< ColorSpinorField * > & | kSpace, |
std::vector< Complex > & | evals | ||
) |
Release memory, save eigenvectors, resize the Krylov space to its original dimension.
[in] | kSpace | The Krylov space vectors |
[in] | evals | The eigenvalue array |
Definition at line 239 of file eigensolve_quda.cpp.
|
inline |
Compute eigenvalues and their residiua. This variant compute the number of converged eigenvalues.
[in] | mat | Matrix operator |
[in] | evecs | The eigenvectors |
[in] | evals | The eigenvalues |
Definition at line 364 of file eigensolve_quda.h.
void quda::EigenSolver::computeEvals | ( | const DiracMatrix & | mat, |
std::vector< ColorSpinorField * > & | evecs, | ||
std::vector< Complex > & | evals, | ||
int | size | ||
) |
Compute eigenvalues and their residiua.
[in] | mat | Matrix operator |
[in] | evecs | The eigenvectors |
[in] | evals | The eigenvalues |
[in] | size | The number of eigenvalues to compute |
Definition at line 718 of file eigensolve_quda.cpp.
void quda::EigenSolver::computeSVD | ( | const DiracMatrix & | mat, |
std::vector< ColorSpinorField * > & | evecs, | ||
std::vector< Complex > & | evals | ||
) |
Computes Left/Right SVD from pre computed Right/Left.
[in] | mat | Matrix operator |
[in] | evecs | Computed eigenvectors of NormOp |
[in] | evals | Computed eigenvalues of NormOp |
Definition at line 625 of file eigensolve_quda.cpp.
|
static |
Creates the eigensolver using the parameters given and the matrix.
eig_param | The eigensolver parameters |
mat | The operator to solve |
profile | Time Profile |
Definition at line 97 of file eigensolve_quda.cpp.
|
inline |
Deflate a given source vector with a given eigenspace. This is a wrapper variant for a single source vector.
[in] | sol | The resulting deflated vector |
[in] | src | The source vector we are deflating |
[in] | evecs | The eigenvectors to use in deflation |
[in] | evals | The eigenvalues to use in deflation |
[in] | accumulate | Whether to preserve the sol vector content prior to accumulating |
Definition at line 288 of file eigensolve_quda.h.
void quda::EigenSolver::deflate | ( | std::vector< ColorSpinorField * > & | sol, |
const std::vector< ColorSpinorField * > & | src, | ||
const std::vector< ColorSpinorField * > & | evecs, | ||
const std::vector< Complex > & | evals, | ||
bool | accumulate = false |
||
) | const |
Deflate a set of source vectors with a given eigenspace.
[in] | sol | The resulting deflated vector set |
[in] | src | The source vector set we are deflating |
[in] | evecs | The eigenvectors to use in deflation |
[in] | evals | The eigenvalues to use in deflation |
[in] | accumulate | Whether to preserve the sol vector content prior to accumulating |
Definition at line 752 of file eigensolve_quda.cpp.
|
inline |
Deflate a a given source vector with a given with a set of left and right singular vectors This is a wrapper variant for a single source vector.
[in] | sol | The resulting deflated vector set |
[in] | src | The source vector set we are deflating |
[in] | evecs | The singular vectors to use in deflation |
[in] | evals | The singular values to use in deflation |
[in] | accumulate | Whether to preserve the sol vector content prior to accumulating |
Definition at line 325 of file eigensolve_quda.h.
void quda::EigenSolver::deflateSVD | ( | std::vector< ColorSpinorField * > & | sol, |
const std::vector< ColorSpinorField * > & | vec, | ||
const std::vector< ColorSpinorField * > & | evecs, | ||
const std::vector< Complex > & | evals, | ||
bool | accumulate = false |
||
) | const |
Deflate a set of source vectors with a set of left and right singular vectors.
[in] | sol | The resulting deflated vector set |
[in] | src | The source vector set we are deflating |
[in] | evecs | The singular vectors to use in deflation |
[in] | evals | The singular values to use in deflation |
[in] | accumulate | Whether to preserve the sol vector content prior to accumulating |
Definition at line 672 of file eigensolve_quda.cpp.
double quda::EigenSolver::estimateChebyOpMax | ( | const DiracMatrix & | mat, |
ColorSpinorField & | out, | ||
ColorSpinorField & | in | ||
) |
Estimate the spectral radius of the operator for the max value of the Chebyshev polynomial.
[in] | mat | Matrix operator |
[in] | out | Output spinor |
[in] | in | Input spinor |
Definition at line 379 of file eigensolve_quda.cpp.
|
pure virtual |
Implemented in quda::IRAM, quda::BLKTRLM, and quda::TRLM.
void quda::EigenSolver::loadFromFile | ( | const DiracMatrix & | mat, |
std::vector< ColorSpinorField * > & | eig_vecs, | ||
std::vector< Complex > & | evals | ||
) |
Load and check eigenpairs from file.
[in] | mat | Matrix operator |
[in] | eig_vecs | The eigenvectors to save |
[in] | file | The filename to save |
Definition at line 792 of file eigensolve_quda.cpp.
void quda::EigenSolver::matVec | ( | const DiracMatrix & | mat, |
ColorSpinorField & | out, | ||
const ColorSpinorField & | in | ||
) |
Applies the specified matVec operation: M, Mdag, MMdag, MdagM.
[in] | mat | Matrix operator |
[in] | out | Output spinor |
[in] | in | Input spinor |
Definition at line 295 of file eigensolve_quda.cpp.
|
pure virtual |
Computes the eigen decomposition for the operator passed to create.
kSpace | The converged eigenvectors |
evals | The converged eigenvalues |
Implemented in quda::IRAM, quda::BLKTRLM, and quda::TRLM.
bool quda::EigenSolver::orthoCheck | ( | std::vector< ColorSpinorField * > | v, |
int | j | ||
) |
Check orthonormality of input vector space v.
[out] | bool | If all vectors are orthonormal to 1e-16 returns true, else false. |
[in] | v | Vector space |
[in] | j | Use vectors v[0:j-1] |
Definition at line 416 of file eigensolve_quda.cpp.
void quda::EigenSolver::orthonormalizeMGS | ( | std::vector< ColorSpinorField * > & | v, |
int | j | ||
) |
Orthonormalise input vector space v using Modified Gram-Schmidt.
[in] | v | Vector space |
[in] | j | Use vectors v[0:j-1] |
Definition at line 452 of file eigensolve_quda.cpp.
void quda::EigenSolver::permuteVecs | ( | std::vector< ColorSpinorField * > & | kSpace, |
int * | mat, | ||
int | size | ||
) |
Permute the vector space using the permutation matrix.
[in/out] | kSpace The current Krylov space | |
[in] | mat | Eigen object storing the pivots |
[in] | size | The size of the (square) permutation matrix |
Definition at line 491 of file eigensolve_quda.cpp.
void quda::EigenSolver::prepareInitialGuess | ( | std::vector< ColorSpinorField * > & | kSpace | ) |
Check for an initial guess. If none present, populate with rands, then orthonormalise.
[in] | kSpace | The Krylov space vectors |
Definition at line 139 of file eigensolve_quda.cpp.
void quda::EigenSolver::prepareKrylovSpace | ( | std::vector< ColorSpinorField * > & | kSpace, |
std::vector< Complex > & | evals | ||
) |
Extend the Krylov space.
[in] | kSpace | The Krylov space vectors |
[in] | evals | The eigenvalue array |
Definition at line 179 of file eigensolve_quda.cpp.
void quda::EigenSolver::printEigensolverSetup | ( | ) |
Dump the eigensolver parameters to stdout.
Definition at line 192 of file eigensolve_quda.cpp.
void quda::EigenSolver::queryPrec | ( | const QudaPrecision | prec | ) |
Query the eigensolver precision to stdout.
[in] | prec | Precision of the solver instance |
Definition at line 228 of file eigensolve_quda.cpp.
void quda::EigenSolver::rotateVecs | ( | std::vector< ColorSpinorField * > & | kSpace, |
const double * | rot_array, | ||
const int | offset, | ||
const int | dim, | ||
const int | keep, | ||
const int | locked, | ||
TimeProfile & | profile | ||
) |
Rotate the Krylov space.
[in] | kSpace | the Krylov space |
[in] | rot_array | The real rotation matrix |
[in] | offset | The position of the start of unused vectors in kSpace |
[in] | dim | The number of rows in the rotation array |
[in] | keep | The number of columns in the rotation array |
[in] | locked | The number of locked vectors in kSpace |
[in] | profile | Time profiler |
Definition at line 1062 of file eigensolve_quda.cpp.
void quda::EigenSolver::rotateVecsComplex | ( | std::vector< ColorSpinorField * > & | kSpace, |
const Complex * | rot_array, | ||
const int | offset, | ||
const int | dim, | ||
const int | keep, | ||
const int | locked, | ||
TimeProfile & | profile | ||
) |
Rotate the Krylov space.
[in] | kSpace | the Krylov space |
[in] | rot_array | The complex rotation matrix |
[in] | offset | The position of the start of unused vector in kSpace |
[in] | dim | The number of rows in the rotation array |
[in] | keep | The number of columns in the rotation array |
[in] | locked | The number of locked vectors in kSpace |
[in] | profile | Time profiler |
Definition at line 918 of file eigensolve_quda.cpp.
double quda::EigenSolver::setEpsilon | ( | const QudaPrecision | prec | ) |
Set the epsilon parameter.
[in] | prec | Precision of the solver instance |
[out] | epsilon | The deduced epsilon value |
Definition at line 215 of file eigensolve_quda.cpp.
void quda::EigenSolver::sortArrays | ( | QudaEigSpectrumType | spec_type, |
int | n, | ||
std::vector< Complex > & | x, | ||
std::vector< Complex > & | y | ||
) |
Sort array the first n elements of x according to spec_type, y comes along for the ride.
[in] | spec_type | The spectrum type (Largest/Smallest)(Modulus/Imaginary/Real) |
[in] | n | The number of elements to sort |
[in] | x | The array to sort |
[in] | y | An array whose elements will be permuted in tandem with x |
Definition at line 821 of file eigensolve_quda.cpp.
void quda::EigenSolver::sortArrays | ( | QudaEigSpectrumType | spec_type, |
int | n, | ||
std::vector< Complex > & | x, | ||
std::vector< double > & | y | ||
) |
Sort array the first n elements of x according to spec_type, y comes along for the ride Overloaded version with real y.
[in] | spec_type | The spectrum type (Largest/Smallest)(Modulus/Imaginary/Real) |
[in] | n | The number of elements to sort |
[in] | x | The array to sort |
[in] | y | An array whose elements will be permuted in tandem with x |
Definition at line 882 of file eigensolve_quda.cpp.
void quda::EigenSolver::sortArrays | ( | QudaEigSpectrumType | spec_type, |
int | n, | ||
std::vector< double > & | x, | ||
std::vector< Complex > & | y | ||
) |
Sort array the first n elements of x according to spec_type, y comes along for the ride Overloaded version with real x.
[in] | spec_type | The spectrum type (Largest/Smallest)(Modulus/Imaginary/Real) |
[in] | n | The number of elements to sort |
[in] | x | The array to sort |
[in] | y | An array whose elements will be permuted in tandem with x |
Definition at line 892 of file eigensolve_quda.cpp.
void quda::EigenSolver::sortArrays | ( | QudaEigSpectrumType | spec_type, |
int | n, | ||
std::vector< double > & | x, | ||
std::vector< double > & | y | ||
) |
Sort array the first n elements of x according to spec_type, y comes along for the ride Overloaded version with real x and real y.
[in] | spec_type | The spectrum type (Largest/Smallest)(Modulus/Imaginary/Real) that determines the sorting condition |
[in] | n | The number of elements to sort |
[in] | x | The array to sort |
[in] | y | An array whose elements will be permuted in tandem with x |
Definition at line 902 of file eigensolve_quda.cpp.
|
protected |
Definition at line 39 of file eigensolve_quda.h.
|
protected |
Definition at line 40 of file eigensolve_quda.h.
|
protected |
Definition at line 38 of file eigensolve_quda.h.
|
protected |
Part of the spectrum to be computed
Definition at line 35 of file eigensolve_quda.h.
|
protected |
Definition at line 53 of file eigensolve_quda.h.
|
protected |
Definition at line 20 of file eigensolve_quda.h.
|
protected |
Definition at line 41 of file eigensolve_quda.h.
|
protected |
Definition at line 42 of file eigensolve_quda.h.
|
protected |
Definition at line 44 of file eigensolve_quda.h.
|
protected |
Definition at line 43 of file eigensolve_quda.h.
|
protected |
Definition at line 19 of file eigensolve_quda.h.
|
protected |
Definition at line 37 of file eigensolve_quda.h.
|
protected |
Size of Krylov space after extension
Definition at line 27 of file eigensolve_quda.h.
|
protected |
Definition at line 25 of file eigensolve_quda.h.
|
protected |
Number of converged eigenvalues requested
Definition at line 28 of file eigensolve_quda.h.
|
protected |
Size of initial factorisation
Definition at line 26 of file eigensolve_quda.h.
|
protected |
Definition at line 45 of file eigensolve_quda.h.
|
protected |
Definition at line 47 of file eigensolve_quda.h.
|
protected |
Definition at line 46 of file eigensolve_quda.h.
|
protected |
Definition at line 21 of file eigensolve_quda.h.
|
protected |
Definition at line 52 of file eigensolve_quda.h.
|
protected |
Definition at line 49 of file eigensolve_quda.h.
|
protected |
Definition at line 36 of file eigensolve_quda.h.
|
protected |
Tolerance on eigenvalues
Definition at line 30 of file eigensolve_quda.h.
|
protected |
Definition at line 58 of file eigensolve_quda.h.
|
protected |
True if using polynomial acceleration
Definition at line 31 of file eigensolve_quda.h.
|
protected |
Definition at line 55 of file eigensolve_quda.h.
|
protected |
Definition at line 56 of file eigensolve_quda.h.
|
protected |
Number of converged eigenvalues to use in deflation
Definition at line 29 of file eigensolve_quda.h.