MyraMath
Classes | Functions
lopcg1.h File Reference

Finds one small eigenpair of a real symmetric Action. More...

#include <myramath/MYRAMATH_EXPORT.h>
#include <utility>
Include dependency graph for lopcg1.h:

Go to the source code of this file.

Classes

class  myra::Action< Number >
 Applies the "Action" of a linear operator, b := A*x. More...
 
class  myra::Vector< Number >
 Tabulates a vector of length N, allows random access. More...
 
class  myra::CMatrixRange< Number >
 Represents a const MatrixRange. More...
 
class  myra::CVectorRange< Number >
 Represents a const VectorRange. More...
 

Functions

std::pair< Vector< float >, float > myra::lopcg1 (const Action< float > &M, const Action< float > &A, float tolerance=1.0e-4, int iterations=100)
 Finds one small eigenvector of a symmetric matrix A, requires preconditioner M. Returns the eigenpair, (x,1/lambda)
 
std::pair< Vector< double >, double > myra::lopcg1 (const Action< double > &M, const Action< double > &A, double tolerance, int iterations)
 
std::pair< Vector< float >, float > myra::lopcg1 (const Action< float > &M, const Action< float > &A, const CMatrixRange< float > &Q, float tolerance=1.0e-4, int iterations=100)
 Finds one small eigenvector of a symmetric matrix A, requires preconditioner M. Returns the eigenpair, (x,1/lambda)
 
std::pair< Vector< double >, double > myra::lopcg1 (const Action< double > &M, const Action< double > &A, const CMatrixRange< double > &Q, double tolerance, int iterations)
 
std::pair< Vector< float >, float > myra::lopcg1 (const Action< float > &M, const Action< float > &A, const CMatrixRange< float > &Q, const CVectorRange< float > &s, float tolerance=1.0e-4, int iterations=100)
 Finds one small eigenvector of a symmetric matrix A, requires preconditioner M. Returns the eigenpair, (x,1/lambda)
 
std::pair< Vector< double >, double > myra::lopcg1 (const Action< double > &M, const Action< double > &A, const CMatrixRange< double > &Q, const CVectorRange< double > &s, double tolerance, int iterations)
 

Detailed Description

Finds one small eigenpair of a real symmetric Action.

TODO block version of this algorithm, refactor to have same semantics on lanczos and lopcg (some missing pieces): lanczos1, (lanczosN), blanczos, lopcg1, lopcgN, (blopcg)