6 #ifndef MYRAMATH_ITERATIVE_LOPCG1_H     7 #define MYRAMATH_ITERATIVE_LOPCG1_H    20 #include <myramath/MYRAMATH_EXPORT.h>    28 template<
class Number> 
class Action;
    29 template<
class Number> 
class Vector;
    30 template<
class Number> 
class CMatrixRange;
    31 template<
class Number> 
class CVectorRange;
    34 MYRAMATH_EXPORT std::pair< Vector<float >, 
float > lopcg1(
const Action<float >& M, 
const Action<float >& A, 
float  tolerance = 1.0e-4, 
int iterations = 100);
    35 MYRAMATH_EXPORT std::pair< Vector<double>, 
double> lopcg1(
const Action<double>& M, 
const Action<double>& A, 
double tolerance = 1.0e-8, 
int iterations = 100);
    39 MYRAMATH_EXPORT std::pair< Vector<float >, 
float > lopcg1(
const Action<float >& M, 
const Action<float >& A, 
const CMatrixRange<float >& Q, 
float  tolerance = 1.0e-4, 
int iterations = 100);
    40 MYRAMATH_EXPORT std::pair< Vector<double>, 
double> lopcg1(
const Action<double>& M, 
const Action<double>& A, 
const CMatrixRange<double>& Q, 
double tolerance = 1.0e-8, 
int iterations = 100);
    45 MYRAMATH_EXPORT std::pair< Vector<float >, 
float > 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);
    46 MYRAMATH_EXPORT std::pair< Vector<double>, 
double> lopcg1(
const Action<double>& M, 
const Action<double>& A, 
const CMatrixRange<double>& Q, 
const CVectorRange<double>& s, 
double tolerance = 1.0e-8, 
int iterations = 100);