gstlearn  0.3.3
CCC
PrecisionOpMultiConditional Class Reference

#include <PrecisionOpMultiConditional.hpp>

Inheritance diagram for PrecisionOpMultiConditional:
ALinearOpMulti

Public Member Functions

 PrecisionOpMultiConditional ()
 
virtual ~PrecisionOpMultiConditional ()
 
virtual double computeLogDetOp (int nbsimu=1, int seed=123) const
 
virtual void push_back (PrecisionOp *pmatElem, IProjMatrix *projDataElem=nullptr)
 
VectorDouble getAllVarianceData () const
 
double getVarianceData (int iech) const
 
void setVarianceData (double nugg)
 
void setVarianceDataVector (const VectorDouble &nugg)
 
int sizes () const override
 
int size (int i) const override
 
VectorVectorDouble computeRhs (const VectorDouble &datVal) const
 
void computeRhsInPlace (const VectorDouble &datVal, VectorVectorDouble &rhs) const
 
void simulateOnMeshings (VectorVectorDouble &result) const
 
void simulateOnMeshing (VectorDouble &result, int icov=0) const
 
void simulateOnDataPointFromMeshings (const VectorVectorDouble &simus, VectorDouble &result) const
 
void evalInvCov (const VectorDouble &inv, VectorDouble &result) const
 
std::pair< double, double > computeRangeEigenVal () const
 
std::pair< double, double > rangeEigenValQ () const
 
double getMaxEigenValProj () const
 
double sumLogVar () const
 
double computeLogDetQ (int nbsimu=1, int seed=123) const
 
double computeTotalLogDet (int nbsimu=1, int seed=123) const
 
double computeQuadratic (const VectorDouble &x) const
 
void preparePoly (Chebychev &logPoly) const
 
void AtA (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
VectorDouble computeCoeffs (const VectorDouble &Y, const VectorVectorDouble &X) const
 
const ProjMatrixgetProjMatrix (int i=0) const
 
- Public Member Functions inherited from ALinearOpMulti
 ALinearOpMulti (int nitermax=1000, double eps=EPSILON8)
 
 ALinearOpMulti (const ALinearOpMulti &m)
 
ALinearOpMultioperator= (const ALinearOpMulti &m)
 
virtual ~ALinearOpMulti ()
 
virtual void evalInverse (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void evalDirect (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void initLk (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void setNIterMax (int nitermax)
 
void setEps (double eps)
 
void setPrecond (const ALinearOpMulti *precond, int status)
 
void resetStatCG () const
 
void printStatCG () const
 
void _linearComb (double val1, const VectorVectorDouble &in1, double val2, const VectorVectorDouble &in2, VectorVectorDouble &outv) const
 
void prodScalar (double val, const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void addProdScalar (double val, const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void _copyVals (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void _updated () const
 
double innerProduct (const VectorDouble &x, const VectorDouble &y) const
 
double innerProduct (const VectorVectorDouble &x, const VectorVectorDouble &y) const
 
double max (const VectorVectorDouble &vect) const
 
void fillVal (VectorVectorDouble &vect, double val) const
 
void diff (const VectorVectorDouble &, const VectorVectorDouble &, VectorVectorDouble &) const
 
void sum (const VectorVectorDouble &, const VectorVectorDouble &, VectorVectorDouble &) const
 
void _initPublic () const
 

Protected Member Functions

void _evalDirect (const VectorVectorDouble &inv, VectorVectorDouble &outv) const override
 
void _allocate (int i) const
 
- Protected Member Functions inherited from ALinearOpMulti
void _init () const
 

Private Attributes

std::vector< PrecisionOp * > _multiPrecisionOp
 
std::vector< IProjMatrix * > _multiProjData
 
VectorDouble _varianceData
 
int _ndat
 
int _ncova
 
VectorDouble _work1
 
VectorDouble _work1bis
 
VectorDouble _work1ter
 
VectorDouble _workdata
 
VectorVectorDouble _work2
 
VectorVectorDouble _work3
 

Additional Inherited Members

- Public Attributes inherited from ALinearOpMulti
VectorVectorDouble _temp
 
VectorVectorDouble _p
 
VectorVectorDouble _z
 

Detailed Description

Class to store objects for SPDE

Constructor & Destructor Documentation

◆ PrecisionOpMultiConditional()

PrecisionOpMultiConditional::PrecisionOpMultiConditional ( )

◆ ~PrecisionOpMultiConditional()

PrecisionOpMultiConditional::~PrecisionOpMultiConditional ( )
virtual

Member Function Documentation

◆ _allocate()

void PrecisionOpMultiConditional::_allocate ( int  i) const
protected

◆ _evalDirect()

void PrecisionOpMultiConditional::_evalDirect ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const
overrideprotectedvirtual

Compute diag(Q1,...,Qncova) x + 1/nugget [A1,...,Ancova]^t [A1,...,Ancova] x in a block form where ncova is the number of basic structures excluding the nugget effect. Qi are the precision matrices associated to each structure and Ai are the projection matrices from the meshing vertices to the data locations.

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

Implements ALinearOpMulti.

◆ AtA()

void PrecisionOpMultiConditional::AtA ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const

◆ computeCoeffs()

VectorDouble PrecisionOpMultiConditional::computeCoeffs ( const VectorDouble Y,
const VectorVectorDouble X 
) const

◆ computeLogDetOp()

double PrecisionOpMultiConditional::computeLogDetOp ( int  nbsimu = 1,
int  seed = 123 
) const
virtual

◆ computeLogDetQ()

double PrecisionOpMultiConditional::computeLogDetQ ( int  nbsimu = 1,
int  seed = 123 
) const

◆ computeQuadratic()

double PrecisionOpMultiConditional::computeQuadratic ( const VectorDouble x) const

◆ computeRangeEigenVal()

std::pair< double, double > PrecisionOpMultiConditional::computeRangeEigenVal ( ) const

◆ computeRhs()

VectorVectorDouble PrecisionOpMultiConditional::computeRhs ( const VectorDouble datVal) const

◆ computeRhsInPlace()

void PrecisionOpMultiConditional::computeRhsInPlace ( const VectorDouble datVal,
VectorVectorDouble rhs 
) const

◆ computeTotalLogDet()

double PrecisionOpMultiConditional::computeTotalLogDet ( int  nbsimu = 1,
int  seed = 123 
) const

◆ evalInvCov()

void PrecisionOpMultiConditional::evalInvCov ( const VectorDouble inv,
VectorDouble result 
) const

◆ getAllVarianceData()

VectorDouble PrecisionOpMultiConditional::getAllVarianceData ( ) const
inline

◆ getMaxEigenValProj()

double PrecisionOpMultiConditional::getMaxEigenValProj ( ) const

◆ getProjMatrix()

const ProjMatrix* PrecisionOpMultiConditional::getProjMatrix ( int  i = 0) const
inline

◆ getVarianceData()

double PrecisionOpMultiConditional::getVarianceData ( int  iech) const
inline

◆ preparePoly()

void PrecisionOpMultiConditional::preparePoly ( Chebychev logPoly) const

◆ push_back()

void PrecisionOpMultiConditional::push_back ( PrecisionOp pmatElem,
IProjMatrix projDataElem = nullptr 
)
virtual

◆ rangeEigenValQ()

std::pair< double, double > PrecisionOpMultiConditional::rangeEigenValQ ( ) const

◆ setVarianceData()

void PrecisionOpMultiConditional::setVarianceData ( double  nugg)
inline

◆ setVarianceDataVector()

void PrecisionOpMultiConditional::setVarianceDataVector ( const VectorDouble nugg)
inline

◆ simulateOnDataPointFromMeshings()

void PrecisionOpMultiConditional::simulateOnDataPointFromMeshings ( const VectorVectorDouble simus,
VectorDouble result 
) const

◆ simulateOnMeshing()

void PrecisionOpMultiConditional::simulateOnMeshing ( VectorDouble result,
int  icov = 0 
) const

◆ simulateOnMeshings()

void PrecisionOpMultiConditional::simulateOnMeshings ( VectorVectorDouble result) const

◆ size()

int PrecisionOpMultiConditional::size ( int  i) const
inlineoverridevirtual

Implements ALinearOpMulti.

◆ sizes()

int PrecisionOpMultiConditional::sizes ( ) const
inlineoverridevirtual

Implements ALinearOpMulti.

◆ sumLogVar()

double PrecisionOpMultiConditional::sumLogVar ( ) const

Member Data Documentation

◆ _multiPrecisionOp

std::vector<PrecisionOp*> PrecisionOpMultiConditional::_multiPrecisionOp
private

◆ _multiProjData

std::vector<IProjMatrix*> PrecisionOpMultiConditional::_multiProjData
private

◆ _ncova

int PrecisionOpMultiConditional::_ncova
private

◆ _ndat

int PrecisionOpMultiConditional::_ndat
private

◆ _varianceData

VectorDouble PrecisionOpMultiConditional::_varianceData
private

◆ _work1

VectorDouble PrecisionOpMultiConditional::_work1
mutableprivate

◆ _work1bis

VectorDouble PrecisionOpMultiConditional::_work1bis
mutableprivate

◆ _work1ter

VectorDouble PrecisionOpMultiConditional::_work1ter
mutableprivate

◆ _work2

VectorVectorDouble PrecisionOpMultiConditional::_work2
mutableprivate

◆ _work3

VectorVectorDouble PrecisionOpMultiConditional::_work3
mutableprivate

◆ _workdata

VectorDouble PrecisionOpMultiConditional::_workdata
mutableprivate

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