gstlearn  1.0.0
CCC
PrecisionOpMultiConditional Class Reference

#include <PrecisionOpMultiConditional.hpp>

Inheritance diagram for PrecisionOpMultiConditional:
ALinearOpMulti PrecisionOpMultiConditionalCs

Public Member Functions

 PrecisionOpMultiConditional ()
 
 PrecisionOpMultiConditional (const PrecisionOpMultiConditional &m)=delete
 
PrecisionOpMultiConditionaloperator= (const PrecisionOpMultiConditional &m)=delete
 
virtual ~PrecisionOpMultiConditional ()
 
virtual void makeReady ()
 Interface for PrecisionOpMultiConditional. More...
 
virtual int push_back (PrecisionOp *pmatElem, IProjMatrix *projDataElem=nullptr)
 
virtual double computeLogDetOp (int nbsimu=1, int seed=123) const
 
int sizes () const override
 Interface for ALinearOpMulti. More...
 
int size (int i) const override
 
VectorDouble getAllVarianceData () const
 
double getVarianceData (int iech) const
 
void setVarianceData (double nugg)
 
void setVarianceDataVector (const VectorDouble &nugg)
 
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
 
const PrecisionOpgetMultiPrecisionOp (int i=0) const
 
void mustShowStats (bool status) 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 &vecin, VectorVectorDouble &vecout) 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)
 
const LogStatsgetLogStats () const
 
void prepare () 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 _updated () 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
 
- Protected Attributes inherited from ALinearOpMulti
LogStats _logStats
 

Detailed Description

Class to store objects for SPDE

Constructor & Destructor Documentation

◆ PrecisionOpMultiConditional() [1/2]

PrecisionOpMultiConditional::PrecisionOpMultiConditional ( )

◆ PrecisionOpMultiConditional() [2/2]

PrecisionOpMultiConditional::PrecisionOpMultiConditional ( const PrecisionOpMultiConditional m)
delete

◆ ~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

Reimplemented in PrecisionOpMultiConditionalCs.

◆ 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

◆ getMultiPrecisionOp()

const PrecisionOp* PrecisionOpMultiConditional::getMultiPrecisionOp ( int  i = 0) const
inline

◆ getProjMatrix()

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

◆ getVarianceData()

double PrecisionOpMultiConditional::getVarianceData ( int  iech) const
inline

◆ makeReady()

void PrecisionOpMultiConditional::makeReady ( )
virtual

◆ mustShowStats()

void PrecisionOpMultiConditional::mustShowStats ( bool  status) const
inline

◆ operator=()

PrecisionOpMultiConditional& PrecisionOpMultiConditional::operator= ( const PrecisionOpMultiConditional m)
delete

◆ preparePoly()

void PrecisionOpMultiConditional::preparePoly ( Chebychev logPoly) const

◆ push_back()

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

Reimplemented in PrecisionOpMultiConditionalCs.

◆ 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

Interface for ALinearOpMulti.

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: