1.1.0
CCC
 
ACov Class Referenceabstract

Class containing the Covariance part of the Model. More...

#include <ACov.hpp>

Inheritance diagram for ACov:
ASpaceObject AStringable ACovAnisoList CovAniso CovLMC CovLMGradient ACovGradient CovLMCAnamorphosis CovLMCConvolution CovLMCTapering CovGradientFunctional CovGradientNumerical

Public Member Functions

 ACov (const ASpace *space=nullptr)
 
 ACov (const ACov &r)
 
ACovoperator= (const ACov &r)
 
virtual ~ACov ()
 
virtual int getNVariables () const =0
 ACov Interface. More...
 
virtual bool isIndexable () const
 
virtual bool isNoStat () const
 
virtual const ANoStatgetNoStat () const
 
virtual ANoStatgetNoStatModify () const
 
virtual double eval0 (int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const =0
 Calculate the covariance between two variables for 0-distance (stationary case) More...
 
virtual void eval0MatInPlace (MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const
 Calculate the matrix of covariances for 0-distance (stationary case) More...
 
virtual double eval (const SpacePoint &p1, const SpacePoint &p2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const =0
 Calculate the covariance between two variables and two points (general case) More...
 
virtual void evalMatInPlace (const SpacePoint &p1, const SpacePoint &p2, MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const
 Calculate the matrix of covariances between two points (general case) More...
 
virtual void evalMatOptimInPlace (int icas1, int iech1, int icas2, int iech2, MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const =0
 Calculate the matrix of covariances between two points given by indices (optim) More...
 
virtual bool isOptimEnabled () const
 Tell if the use of Optimization is enabled or not. More...
 
virtual double evalCovOnSphere (double, int, bool) const
 
virtual double evalSpectrum (const VectorDouble &, int, int) const
 
virtual void updateCovByPoints (int, int, int, int)
 
virtual void updateCovByMesh (int)
 
void setOptimEnabled (bool isOptimEnabled)
 
VectorDouble eval (const std::vector< SpacePoint > &vec_p1, const std::vector< SpacePoint > &vec_p2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral eval0Mat (const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalMat (const SpacePoint &p1, const SpacePoint &p2, const CovCalcMode *mode=nullptr) const
 
double evalIvarIpas (double step, const VectorDouble &dir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evalIvarIpasIncr (const VectorDouble &dincr, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
VectorDouble evalIvarNpas (const VectorDouble &vec_step, const VectorDouble &dir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalNvarIpas (double step, const VectorDouble &dir=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalNvarIpasIncr (const VectorDouble &dincr, const CovCalcMode *mode=nullptr) const
 
double evalIsoIvarIpas (double step, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
VectorDouble evalIsoIvarNpas (const VectorDouble &vec_step, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalIsoNvarIpas (double step, const CovCalcMode *mode=nullptr) const
 
double evalCvv (const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evalCvvShift (const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &shift, const VectorDouble &angles=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalCvvM (const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
double evalCxv (const SpacePoint &p1, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evalCxv (const Db *db, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalCxvM (const SpacePoint &p1, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
VectorDouble evalPointToDb (const SpacePoint &p1, const Db *db2, int ivar=0, int jvar=0, bool useSel=true, const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr) const
 
VectorDouble evalPointToDbAsSP (const std::vector< SpacePoint > &p1s, const SpacePoint &p2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evalAverageDbToDb (const Db *db1, const Db *db2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evalAverageIncrToIncr (const VectorVectorDouble &d1, const VectorVectorDouble &d2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evalAveragePointToDb (const SpacePoint &p1, const Db *db2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixRectangular evalCovMatrix (Db *db1_arg, Db *db2_arg=nullptr, int ivar=0, int jvar=0, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr)
 
double extensionVariance (const Db *db, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0) const
 
double samplingDensityVariance (const Db *db, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0) const
 
double specificVolume (const Db *db, double mean, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0) const
 
double coefficientOfVariation (const Db *db, double volume, double mean, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0) const
 
double specificVolumeFromCoV (Db *db, double cov, double mean, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), int ivar=0, int jvar=0) const
 
- Public Member Functions inherited from ASpaceObject
 ASpaceObject (const ASpace *space=nullptr)
 
 ASpaceObject (const ASpace &space)
 
 ASpaceObject (const ASpaceObject &r)
 
ASpaceObjectoperator= (const ASpaceObject &r)
 
virtual ~ASpaceObject ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 AStringable interface. More...
 
const ASpacegetSpace () const
 Accessor to the current object space context. More...
 
bool isConsistent () const
 Indicate if I am consistent with my current space context. More...
 
VectorDouble getUnitaryVector () const
 Return unitary vector for the current space context. More...
 
virtual bool isConsistent (const ASpace *space) const =0
 Indicate if I am consistent with the provided space. More...
 
unsigned int getNDim () const
 Shortcuts to ASpace methods. More...
 
const VectorDoublegetOrigin () const
 Return the current space context origin coordinates. More...
 
double getDistance (const SpacePoint &p1, const SpacePoint &p2) const
 Return the distance between two space points for the current space context. More...
 
double getDistance1D (const SpacePoint &p1, const SpacePoint &p2, int idim) const
 Return the distance along one direction between two space points. More...
 
VectorDouble getIncrement (const SpacePoint &p1, const SpacePoint &p2) const
 Return the increment vector between two space points for the current space context. More...
 
- Public Member Functions inherited from AStringable
 AStringable ()
 
 AStringable (const AStringable &r)
 
AStringableoperator= (const AStringable &r)
 
virtual ~AStringable ()
 
virtual void display (const AStringFormat *strfmt=nullptr) const final
 
virtual void display (int level) const final
 

Detailed Description

Class containing the Covariance part of the Model.

It is the uppermost class of the Covariance Tree and is conceived as simple as possible on purpose (in order to let the user defined its own version if necessary): it must simply be able to return its value between two end-point (see eval method).

It is mainly implemented in CovAniso.hpp or ACovAnisoList.hpp

Constructor & Destructor Documentation

ACov::ACov ( const ASpace space = nullptr)
ACov::ACov ( const ACov r)
ACov::~ACov ( )
virtual

Member Function Documentation

double ACov::coefficientOfVariation ( const Db db,
double  volume,
double  mean,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0 
) const

Calculate the Coefficient of Variation

Parameters
dbSet of data points
volumeSpecific production volume
meanValue of the Mean
extTarget Block extension
ndiscVector of discretization
anglesOptional rotation angle for block
x0Optional origin of the Block
ivarRank of the first variable
jvarRank of the second variable
Returns
virtual double ACov::eval ( const SpacePoint p1,
const SpacePoint p2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
pure virtual

Calculate the covariance between two variables and two points (general case)

Implemented in CovAniso, ACovAnisoList, CovLMCConvolution, CovLMCTapering, CovLMCAnamorphosis, and CovGradientNumerical.

VectorDouble ACov::eval ( const std::vector< SpacePoint > &  vec_p1,
const std::vector< SpacePoint > &  vec_p2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
virtual double ACov::eval0 ( int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
pure virtual

Calculate the covariance between two variables for 0-distance (stationary case)

Implemented in CovAniso, ACovAnisoList, CovLMCConvolution, CovLMCTapering, CovLMCAnamorphosis, and CovGradientNumerical.

MatrixSquareGeneral ACov::eval0Mat ( const CovCalcMode mode = nullptr) const
void ACov::eval0MatInPlace ( MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
virtual

Calculate the matrix of covariances for 0-distance (stationary case)

Calculate the Matrix of covariance for zero distance

Parameters
matCovariance matrix (Dimension: nvar * nvar)
modeCalculation Options
Remarks
: Matrix 'mat' should be dimensioned and initialized beforehand

Reimplemented in CovAniso, ACovAnisoList, CovLMCConvolution, CovLMCTapering, CovLMCAnamorphosis, and CovLMGradient.

double ACov::evalAverageDbToDb ( const Db db1,
const Db db2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Calculate the (weighted) average Covariance between samples of two Dbs, for a pair of variables

Parameters
db1Pointer to the first Db
db2Pointer to the second Db
ivarRank of the first variables
jvarRank of the second variable
modeCovCalcMode structure
Returns
double ACov::evalAverageIncrToIncr ( const VectorVectorDouble d1,
const VectorVectorDouble d2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
double ACov::evalAveragePointToDb ( const SpacePoint p1,
const Db db2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Calculate the (weighted) average Covariance between a point and a Db for a pair of variables

Parameters
p1Point location
db2Pointer to the second Db
ivarRank of the first variables
jvarRank of the second variable
modeCovCalcMode structure
Returns
MatrixRectangular ACov::evalCovMatrix ( Db db1,
Db db2 = nullptr,
int  ivar = 0,
int  jvar = 0,
const VectorInt nbgh1 = VectorInt(),
const VectorInt nbgh2 = VectorInt(),
const CovCalcMode mode = nullptr 
)

Establish the covariance matrix between two Dbs

Parameters
[in]db1First Db
[in]db2Second Db (=db1 if absent)
[in]ivarRank of the first variable (-1: all variables)
[in]jvarRank of the second variable (-1: all variables)
[in]nbgh1Vector of indices of active samples in db1 (optional)
[in]nbgh2Vector of indices of active samples in db2 (optional)
[in]modeCovCalcMode structure
Remarks
The returned matrix if dimension to nrows * ncols where
nrows is the number of active samples in db1
ncols is the number of active samples in db2
Note
'dbin' and 'dbout' cannot be made 'const' as they can be updated
due to the presence of 'nostat'
virtual double ACov::evalCovOnSphere ( double  ,
int  ,
bool   
) const
inlinevirtual

Reimplemented in CovAniso.

double ACov::evalCvv ( const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Average covariance over a block

Parameters
extVector of Block extensions
ndiscVector of Block discretization
anglesVector of rotation angles
ivarRank of the first variable
jvarRank of the second variable
modeCovCalcMode structure
Returns
MatrixSquareGeneral ACov::evalCvvM ( const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const CovCalcMode mode = nullptr 
) const
double ACov::evalCvvShift ( const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble shift,
const VectorDouble angles = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Average covariance between a block and the same block shifted

Parameters
extVector of Block extensions
ndiscVector of Block discretization
anglesVector of rotation angles
shiftShift between the two blocks
ivarRank of the first variable
jvarRank of the second variable
modeCovCalcMode structure
Returns
double ACov::evalCxv ( const SpacePoint p1,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Average covariance over a block

Parameters
p1Point location
extVector of Block extensions
ndiscVector of Block discretization
anglesVector of rotation angles
x0Vector for origin of block
ivarRank of the first variable
jvarRank of the second variable
modeCovCalcMode structure
Returns
double ACov::evalCxv ( const Db db,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
MatrixSquareGeneral ACov::evalCxvM ( const SpacePoint p1,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
const CovCalcMode mode = nullptr 
) const
double ACov::evalIsoIvarIpas ( double  step,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Covariance for a given unit global distance (without anisotropy) for a pair of variables and a single step

Parameters
ivarRank of the first variable
jvarRank of the second variable
stepStep value
modeCovCalcMode structure
Returns

TODO : Not true whatever the space

VectorDouble ACov::evalIsoIvarNpas ( const VectorDouble vec_step,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Covariance for a given unit global distance (without anisotropy) for a pair of variables and a set of steps

Parameters
ivar
jvar
vec_step
mode
Returns
MatrixSquareGeneral ACov::evalIsoNvarIpas ( double  step,
const CovCalcMode mode = nullptr 
) const

Covariance for a given unit global distance (without anisotropy) for a set of variables and a single step

Parameters
stepStep value
modeCovCalcMode structure
Returns
double ACov::evalIvarIpas ( double  step,
const VectorDouble dir = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Covariance from a given point (center) in a given direction (dir *step)

Parameters
ivarRank of the first variable
jvarRank of the second variable
stepStep value
dirDirection definition
modeCovCalcMode structure
Returns
double ACov::evalIvarIpasIncr ( const VectorDouble dincr,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
VectorDouble ACov::evalIvarNpas ( const VectorDouble vec_step,
const VectorDouble dir = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Covariance vector from a given point (center) in a given direction (dir * steps) for a pair of variables and a set of steps

Parameters
ivarRank of the first variable
jvarRank of the second variable
vec_stepVector of step values
dirDirection definition
modeCovCalcMode structure
Returns
MatrixSquareGeneral ACov::evalMat ( const SpacePoint p1,
const SpacePoint p2,
const CovCalcMode mode = nullptr 
) const
void ACov::evalMatInPlace ( const SpacePoint p1,
const SpacePoint p2,
MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
virtual

Calculate the matrix of covariances between two points (general case)

Calculate the Matrix of covariance between two space points

Parameters
p1Reference of the first space point
p2Reference of the second space point
matCovariance matrix (Dimension: nvar * nvar)
modeCalculation Options
Remarks
: Matrix 'mat' should be dimensioned and initialized beforehand

Reimplemented in CovAniso, ACovAnisoList, CovLMCConvolution, CovLMCTapering, CovLMCAnamorphosis, and CovLMGradient.

virtual void ACov::evalMatOptimInPlace ( int  icas1,
int  iech1,
int  icas2,
int  iech2,
MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
pure virtual

Calculate the matrix of covariances between two points given by indices (optim)

Implemented in CovAniso, and ACovAnisoList.

MatrixSquareGeneral ACov::evalNvarIpas ( double  step,
const VectorDouble dir = VectorDouble(),
const CovCalcMode mode = nullptr 
) const

Covariance Matrix from a given point (center) in a given direction (dir * step) for a set of variables and a given step

Parameters
stepStep value
dirDirection definition
modeCovCalcMode structure
Returns
MatrixSquareGeneral ACov::evalNvarIpasIncr ( const VectorDouble dincr,
const CovCalcMode mode = nullptr 
) const
VectorDouble ACov::evalPointToDb ( const SpacePoint p1,
const Db db2,
int  ivar = 0,
int  jvar = 0,
bool  useSel = true,
const VectorInt nbgh2 = VectorInt(),
const CovCalcMode mode = nullptr 
) const

Calculate the Covariance vector between a Point and all the samples of a Db, for a pair of variables

Parameters
p1Point location
db2Pointer to the second Db
ivarRank of the first variables
jvarRank of the second variable
useSelWhen TRUE, the returned vector is reduced to active samples Otherwise, returns TEST for masked samples
nbgh2Vector of indices of active samples in db2 (optional)
modeCovCalcMode structure
Returns
VectorDouble ACov::evalPointToDbAsSP ( const std::vector< SpacePoint > &  p1s,
const SpacePoint p2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
virtual double ACov::evalSpectrum ( const VectorDouble ,
int  ,
int   
) const
inlinevirtual

Reimplemented in CovAniso.

double ACov::extensionVariance ( const Db db,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0 
) const

Variance of Extension of a set of points and the block

Parameters
dbReference Data Base
extVector giving the extensions of the target block
ndiscVector giving the discretization
anglesVector for the rotation angles of the block (optional)
x0Optional origin of the Block
ivarRank of the first variable
jvarRank of the second variable
Returns
virtual const ANoStat* ACov::getNoStat ( ) const
inlinevirtual

Reimplemented in ACovAnisoList.

virtual ANoStat* ACov::getNoStatModify ( ) const
inlinevirtual

Reimplemented in ACovAnisoList.

virtual int ACov::getNVariables ( ) const
pure virtual

ACov Interface.

Implemented in CovAniso, and ACovAnisoList.

virtual bool ACov::isIndexable ( ) const
inlinevirtual

Reimplemented in ACovAnisoList.

virtual bool ACov::isNoStat ( ) const
inlinevirtual

Reimplemented in ACovAnisoList.

virtual bool ACov::isOptimEnabled ( ) const
inlinevirtual

Tell if the use of Optimization is enabled or not.

Reimplemented in CovLMCConvolution, CovLMCTapering, CovLMCAnamorphosis, and CovLMGradient.

ACov & ACov::operator= ( const ACov r)
double ACov::samplingDensityVariance ( const Db db,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0 
) const

Calculate the Sampling Density Variance

Parameters
dbSet of data points
extBlock extension
ndiscDiscretization
anglesOptional rotation angles for the Block
x0Optional origin of the block
ivarRank of the first variable
jvarRank of the second variable
Returns
void ACov::setOptimEnabled ( bool  isOptimEnabled)
inline
double ACov::specificVolume ( const Db db,
double  mean,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0 
) const

Calculate the Specific Volume

Parameters
dbSet of data points
meanValue of the Mean
extTarget Block extension
ndiscVector of discretization
anglesOptional rotation angle for block
x0Optional origin of the Block
ivarRank of the first variable
jvarRank of the second variable
Returns
double ACov::specificVolumeFromCoV ( Db db,
double  cov,
double  mean,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
int  ivar = 0,
int  jvar = 0 
) const

Derive the Specific volume for a given CoV

Parameters
dbSet of data points
covTarget Coefficient of Variation
meanValue of the Mean
extTarget Block extension
ndiscVector of discretization
anglesOptional rotation angle for block
x0Optional origin of the Block
ivarRank of the first variable
jvarRank of the second variable
Returns
virtual void ACov::updateCovByMesh ( int  )
inlinevirtual

Reimplemented in ACovAnisoList.

virtual void ACov::updateCovByPoints ( int  ,
int  ,
int  ,
int   
)
inlinevirtual

Reimplemented in ACovAnisoList.


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