gstlearn  0.3.3
CCC
ALinearOp Class Referenceabstract

#include <ALinearOp.hpp>

Inheritance diagram for ALinearOp:
Cholesky HessianOp Identity ProdMatVect ShiftOpCs

Public Member Functions

 ALinearOp (int nitermax=1000, double eps=EPSILON8)
 
 ALinearOp (const ALinearOp &m)
 
ALinearOpoperator= (const ALinearOp &m)
 
virtual ~ALinearOp ()
 
virtual void evalInverse (const VectorDouble &inv, VectorDouble &outv) const
 
virtual int getSize () const =0
 
void evalDirect (const VectorDouble &inv, VectorDouble &outv) const
 
void setNIterMax (int nitermax)
 
void setEps (double eps)
 
void setX0 (VectorDouble &x0)
 
void setPrecond (const ALinearOp *precond, int status)
 

Protected Member Functions

virtual void _evalDirect (const VectorDouble &inv, VectorDouble &outv) const =0
 

Private Member Functions

double _prod (const VectorDouble &x, const VectorDouble &y) const
 

Private Attributes

int _nIterMax
 
double _eps
 
VectorDouble _x0
 
int _precondStatus
 
const ALinearOp_precond
 

Constructor & Destructor Documentation

◆ ALinearOp() [1/2]

ALinearOp::ALinearOp ( int  nitermax = 1000,
double  eps = EPSILON8 
)

◆ ALinearOp() [2/2]

ALinearOp::ALinearOp ( const ALinearOp m)

◆ ~ALinearOp()

ALinearOp::~ALinearOp ( )
virtual

Member Function Documentation

◆ _evalDirect()

virtual void ALinearOp::_evalDirect ( const VectorDouble inv,
VectorDouble outv 
) const
protectedpure virtual

Implemented in ShiftOpCs, ProdMatVect, Identity, HessianOp, and Cholesky.

◆ _prod()

double ALinearOp::_prod ( const VectorDouble x,
const VectorDouble y 
) const
private

Returns the scalar product between 'x' and 'y'

Parameters
[in]xFirst array
[in]ySecond array

◆ evalDirect()

void ALinearOp::evalDirect ( const VectorDouble inv,
VectorDouble outv 
) const

Evaluate the product: 'outv' = Q * 'inv'

Parameters
[in]invArray of input values
[out]outvArray of output values

◆ evalInverse()

void ALinearOp::evalInverse ( const VectorDouble inv,
VectorDouble outv 
) const
virtual

Evaluate the product: 'outv' = Q^{-1} * 'inv'

Parameters
[in]invArray of input values
[out]outvArray of output values

Reimplemented in Identity, and Cholesky.

◆ getSize()

virtual int ALinearOp::getSize ( ) const
pure virtual

Implemented in ShiftOpCs, ProdMatVect, Identity, HessianOp, and Cholesky.

◆ operator=()

ALinearOp & ALinearOp::operator= ( const ALinearOp m)

◆ setEps()

void ALinearOp::setEps ( double  eps)
inline

◆ setNIterMax()

void ALinearOp::setNIterMax ( int  nitermax)
inline

◆ setPrecond()

void ALinearOp::setPrecond ( const ALinearOp precond,
int  status 
)

Define the Pre-Conditioner facility

Parameters
[in]precondPointer to a ALinearOp operator
[in]statusStatus of this Pre-conditioner
  • 0 : not defined and therefore not used
  • -1 : Pre-conditioner is the Q_{-1}
  • 1 : Pre-conditioner is the Q
Remarks
When 'precond' argument is not provided, 'status' is forced to 0

◆ setX0()

void ALinearOp::setX0 ( VectorDouble x0)
inline

Member Data Documentation

◆ _eps

double ALinearOp::_eps
private

◆ _nIterMax

int ALinearOp::_nIterMax
private

◆ _precond

const ALinearOp* ALinearOp::_precond
private

◆ _precondStatus

int ALinearOp::_precondStatus
private

◆ _x0

VectorDouble ALinearOp::_x0
private

The documentation for this class was generated from the following files: