gstlearn  1.0.0
CCC
ALinearOpMulti Class Referenceabstract

#include <ALinearOpMulti.hpp>

Inheritance diagram for ALinearOpMulti:
PrecisionOpMultiConditional PrecisionOpMultiConditionalCs

Public Member Functions

 ALinearOpMulti (int nitermax=1000, double eps=EPSILON8)
 
 ALinearOpMulti (const ALinearOpMulti &m)
 
ALinearOpMultioperator= (const ALinearOpMulti &m)
 
virtual ~ALinearOpMulti ()
 
virtual void evalInverse (const VectorVectorDouble &vecin, VectorVectorDouble &vecout) const
 
void evalDirect (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void initLk (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
virtual int sizes () const =0
 
virtual int size (int) const =0
 
void setNIterMax (int nitermax)
 
void setEps (double eps)
 
void setPrecond (const ALinearOpMulti *precond, int status)
 
const LogStatsgetLogStats () const
 
void prepare () const
 

Public Attributes

VectorVectorDouble _temp
 
VectorVectorDouble _p
 
VectorVectorDouble _z
 

Protected Member Functions

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

Protected Attributes

LogStats _logStats
 

Private Attributes

int _nIterMax
 
double _eps
 
bool _precondStatus
 
bool _userInitialValue
 
const ALinearOpMulti_precond
 
bool _initialized
 
VectorVectorDouble _r
 

Constructor & Destructor Documentation

◆ ALinearOpMulti() [1/2]

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

◆ ALinearOpMulti() [2/2]

ALinearOpMulti::ALinearOpMulti ( const ALinearOpMulti m)

◆ ~ALinearOpMulti()

ALinearOpMulti::~ALinearOpMulti ( )
virtual

Member Function Documentation

◆ _evalDirect()

virtual void ALinearOpMulti::_evalDirect ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const
protectedpure virtual

Implemented in PrecisionOpMultiConditional.

◆ _updated()

void ALinearOpMulti::_updated ( ) const
protected

◆ evalDirect()

void ALinearOpMulti::evalDirect ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const

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

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

◆ evalInverse()

void ALinearOpMulti::evalInverse ( const VectorVectorDouble vecin,
VectorVectorDouble vecout 
) const
virtual

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

Parameters
[in]vecinArray of input values
[out]vecoutArray of output values. Will be used as initial value if _userInitialValue is true.

Reimplemented in PrecisionOpMultiConditionalCs.

◆ getLogStats()

const LogStats& ALinearOpMulti::getLogStats ( ) const
inline

◆ initLk()

void ALinearOpMulti::initLk ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const

◆ operator=()

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

◆ prepare()

void ALinearOpMulti::prepare ( ) const

This method intends to resize the different working arrays. It is considered as const in order to avoid breaking constness of calling function

◆ setEps()

void ALinearOpMulti::setEps ( double  eps)
inline

◆ setNIterMax()

void ALinearOpMulti::setNIterMax ( int  nitermax)
inline

◆ setPrecond()

void ALinearOpMulti::setPrecond ( const ALinearOpMulti 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

◆ size()

virtual int ALinearOpMulti::size ( int  ) const
pure virtual

Implemented in PrecisionOpMultiConditional.

◆ sizes()

virtual int ALinearOpMulti::sizes ( ) const
pure virtual

Implemented in PrecisionOpMultiConditional.

Member Data Documentation

◆ _eps

double ALinearOpMulti::_eps
private

◆ _initialized

bool ALinearOpMulti::_initialized
mutableprivate

◆ _logStats

LogStats ALinearOpMulti::_logStats
protected

◆ _nIterMax

int ALinearOpMulti::_nIterMax
private

◆ _p

VectorVectorDouble ALinearOpMulti::_p
mutable

◆ _precond

const ALinearOpMulti* ALinearOpMulti::_precond
private

◆ _precondStatus

bool ALinearOpMulti::_precondStatus
private

◆ _r

VectorVectorDouble ALinearOpMulti::_r
mutableprivate

◆ _temp

VectorVectorDouble ALinearOpMulti::_temp
mutable

◆ _userInitialValue

bool ALinearOpMulti::_userInitialValue
private

◆ _z

VectorVectorDouble ALinearOpMulti::_z
mutable

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