Loading [MathJax]/extensions/tex2jax.js
1.7.3
Geostatistics & Machine Learning toolbox | https://gstlearn.org
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
CovBase Class Reference

#include <CovBase.hpp>

Inheritance diagram for CovBase:
ACov ASpaceObject ICloneable AStringable CovProportional CovAniso ACovGradient CovGradientFunctional CovGradientNumerical

Public Member Functions

 CovBase (ACov *cor=nullptr, const MatrixSymmetric &sills=MatrixSymmetric())
 
 CovBase (const CovBase &r)
 
CovBaseoperator= (const CovBase &r)
 
virtual ~CovBase ()
 
ParamInfo createParamInfoForCholSill (int ivar=0, int jvar=0)
 
virtual bool isConsistent (const ASpace *space) const override
 
virtual int getNVar () const override
 ACov Interface.
 
bool isOptimizationInitialized (const Db *db=nullptr) const
 
void loadInfoValues () override
 
void setCholSill (int ivar, int jvar, double val) const
 
virtual void setSill (double sill) const
 
virtual void setSill (const MatrixSymmetric &sill) const
 Only valid when there is only one variable (in the context)
 
virtual void setSill (const VectorDouble &sill) const
 
virtual void setSill (int ivar, int jvar, double sill) const
 
void initSill (double value=0.)
 
const MatrixSymmetricgetSill () const
 
virtual void setCor (ACov *cor)
 
const ACovgetCor () const
 
double getSill (int ivar, int jvar) const
 
void makeSillNoStatDb (const String &namecol, int ivar=0, int jvar=0, const Db *db=nullptr)
 
void makeSillStationary (int ivar=0, int jvar=0)
 
void makeSillsStationary (bool silent=false)
 
void makeSillNoStatFunctional (const AFunctional *func, int ivar=0, int jvar=0)
 
TabNoStatSillsgetTabNoStatSills () const
 
int getNSills () const
 
bool isNoStatForVariance () const
 
void informMeshByMesh (const AMesh *amesh) const
 
void informMeshByApex (const AMesh *amesh) const
 
VectorDouble informCoords (const VectorVectorDouble &coords, const EConsElem &econs, int iv1=0, int iv2=0) const
 
void informDbIn (const Db *dbin) const
 
void informDbOut (const Db *dbout) const
 
void informMeshByMeshForSills (const AMesh *amesh) const
 
void informMeshByApexForSills (const AMesh *amesh) const
 
void informDbInForSills (const Db *dbin) const
 
void informDbOutForSills (const Db *dbout) const
 
void updateCovByPoints (int icas1, int iech1, int icas2, int iech2) const override
 Tell if the use of Optimization is enabled or not.
 
void updateCovByMesh (int imesh, bool aniso=true) const override
 
double getValue (const EConsElem &econs, int iv1, int iv2) const override
 
void nostatUpdate (CovInternal *covint) const
 
int addEvalCovVecRHSInPlace (vect vect, const VectorInt &index1, int iech2, const KrigOpt &krigopt, SpacePoint &pin, SpacePoint &pout, VectorDouble &tabwork, double lambda=1.) const override
 
void setOptimEnabled (bool flag) const override
 
int makeElemNoStat (const EConsElem &econs, int iv1, int iv2, const AFunctional *func=nullptr, const Db *db=nullptr, const String &namecol=String()) override
 
- Public Member Functions inherited from ACov
 ACov (const CovContext &ctxt=CovContext())
 
 ACov (const ACov &r)
 
ACovoperator= (const ACov &r)
 
virtual ~ACov ()
 
virtual bool isIndexable () const
 
bool isNoStat () const
 
const CovContextgetContext () const
 
void setContext (const CovContext &ctxt)
 
void updateFromContext ()
 
virtual void copyCovContext (const CovContext &ctxt)
 
void initFromContext ()
 
CovContext getContextCopy () const
 
virtual double eval0 (int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 Calculate the covariance between two variables for 0-distance (stationary case)
 
double evalCov (const SpacePoint &p1, const SpacePoint &p2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 Calculate the covariance between two variables and two points (general case)
 
virtual double evalCovOnSphere (double alpha, int degree=50, bool flagScaleDistance=false, const CovCalcMode *mode=nullptr) const
 
virtual VectorDouble evalSpectrumOnSphere (int n, bool flagNormDistance=false, bool flagCumul=false) const
 
virtual double evalSpectrum (const VectorDouble &freq, int ivar, int jvar) const
 
void attachNoStatDb (const Db *db)
 
virtual bool isOptimEnabled () const
 Functions linked to Optimization during Covariance calculations.
 
void optimizationPreProcess (int mode, const std::vector< SpacePoint > &ps) const
 
SpacePointoptimizationLoadInPlace (int iech, int mode, int rank) const
 
void optimizationPostProcess () const
 
void optimizationSetTarget (SpacePoint &pt) const
 
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
 Functions for evaluating Covariances.
 
MatrixSymmetric eval0Mat (const CovCalcMode *mode=nullptr) const
 
MatrixSymmetric evalCovMat0 (const Db *db, int iech, const KrigOpt &krigopt=KrigOpt()) const
 Functions for evaluating Covariance Matrices either in place or not.
 
MatrixDense evalCovMat (const Db *db1, const Db *db2=nullptr, int ivar0=-1, int jvar0=-1, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr, bool cleanOptim=true) const
 
MatrixSymmetric evalCovMatSym (const Db *db1, const VectorInt &nbgh1=VectorInt(), int ivar0=-1, const CovCalcMode *mode=nullptr, bool cleanOptim=true) const
 
MatrixSparseevalCovMatSparse (const Db *db1_arg, const Db *db2_arg=nullptr, int ivar0=-1, int jvar0=-1, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr, bool cleanOptim=true, double eps=EPSILON3) const
 
int evalCovMat0InPlace (MatrixSymmetric &mat, const Db *db, int iech, const KrigOpt &krigopt=KrigOpt()) const
 
int evalCovMatInPlace (MatrixDense &mat, const Db *db1, const Db *db2=nullptr, int ivar0=-1, int jvar0=-1, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr, bool cleanOptim=true) const
 
int evalCovMatSymInPlace (MatrixSymmetric &mat, const Db *db1, const VectorInt &nbgh1=VectorInt(), int ivar0=-1, const CovCalcMode *mode=nullptr, bool cleanOptim=true) const
 
int evalCovMatInPlaceFromIdx (MatrixDense &mat, const Db *db1, const Db *db2, const VectorVectorInt &index1, const VectorVectorInt &index2, const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr, bool cleanOptim=true) const
 
int evalCovMatSymInPlaceFromIdx (MatrixSymmetric &mat, const Db *db1, const VectorVectorInt &index1, const CovCalcMode *mode=nullptr, bool cleanOptim=true) const
 
int evalCovMatRHSInPlaceFromIdx (MatrixDense &mat, const Db *db1, const Db *db2, const VectorVectorInt &index1, const int iech2=-1, const KrigOpt &krigopt=KrigOpt(), bool cleanOptim=true) const
 
int evalCovVecRHSInPlace (vect vect, const Db *db2, const VectorInt &index1, int iech2, const KrigOpt &krigopt, SpacePoint &pin, SpacePoint &pout, VectorDouble &tabwork, double lambda=1.) const
 
void eval0CovMatBiPointInPlace (MatrixSymmetric &mat, const CovCalcMode *mode) 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 evalIvarNlag (const VectorDouble &vec_step, const VectorDouble &dir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquare evalNvarIpas (double step, const VectorDouble &dir=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
MatrixSquare 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 evalIsoIvarNlag (const VectorDouble &vec_step, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquare 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
 
MatrixSquare 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
 
MatrixSquare evalCxvM (const SpacePoint &p1, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
void evalPointToDb (VectorDouble &values, const SpacePoint &p1, const Db *db2, int ivar=0, int jvar=0, bool useSel=true, const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr) const
 
void evalPointToDbAsSP (VectorDouble &values, 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, double eps=0., int seed=434132, 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
 
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
 
double evaluateOneGeneric (const CovInternal *covint, const VectorDouble &d1=VectorDouble(), double weight=1., const CovCalcMode *mode=nullptr) const
 
double calculateStDev (Db *db1, int iech1, Db *db2, int iech2, bool verbose=false, double factor=1., const CovCalcMode *mode=nullptr) const
 
void evaluateMatInPlace (const CovInternal *covint, const VectorDouble &d1, MatrixSquare &covtab, bool flag_init=false, double weight=1., const CovCalcMode *mode=nullptr) const
 
VectorDouble evaluateFromDb (Db *db, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
double evaluateOneIncr (double hh, const VectorDouble &codir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
VectorDouble sample (const VectorDouble &h, const VectorDouble &codir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr, const CovInternal *covint=nullptr) const
 
VectorDouble sampleUnitary (const VectorDouble &hh, int ivar=0, int jvar=0, VectorDouble codir=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
VectorDouble envelop (const VectorDouble &hh, int ivar=0, int jvar=0, int isign=1, VectorDouble codir=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
int buildVmapOnDbGrid (DbGrid *dbgrid, const NamingConvention &namconv=NamingConvention("VMAP")) const
 
double gofToVario (const Vario *vario, bool verbose=true) const
 
void manage (const Db *db1, const Db *db2) const
 
void load (const SpacePoint &p, bool case1) const
 
void makeStationary ()
 
void createNoStatTab ()
 
void informMeshByMesh (const AMesh *amesh) const
 
void informMeshByApex (const AMesh *amesh) const
 
VectorDouble informCoords (const VectorVectorDouble &coords, const EConsElem &econs, int iv1=0, int iv2=0) const
 
void informDbIn (const Db *dbin) const
 
void informDbOut (const Db *dbout) const
 
virtual void updateCovByPoints (int icas1, int iech1, int icas2, int iech2)
 
int getNDim (int ispace=-1) const
 
void optimizationPreProcessForData (const Db *db1=nullptr) const
 
bool checkAndManageNoStatDb (const Db *db, const String &namecol)
 
std::shared_ptr< const DbgetDbNoStat () const
 
const DbgetDbNoStatRaw () const
 
void setNoStatDbIfNecessary (const Db *db)
 
void setNoStatDbIfNecessary (std::shared_ptr< const Db > &db)
 
- Public Member Functions inherited from ASpaceObject
 ASpaceObject (const ASpaceSharedPtr &space=ASpaceSharedPtr())
 
 ASpaceObject (const ASpaceObject &r)
 
ASpaceObjectoperator= (const ASpaceObject &r)
 
virtual ~ASpaceObject ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 AStringable interface.
 
ASpaceSharedPtr getSpace () const
 Accessor to the current object space context.
 
bool isConsistent () const
 Indicate if I am consistent with my current space context.
 
VectorDouble getUnitaryVector () const
 Return unitary vector for the current space context.
 
bool isConsistent (const ASpaceSharedPtr &space) const
 Indicate if I am consistent with the provided space.
 
unsigned int getNDim (int ispace=-1) const
 Shortcuts to ASpace methods.
 
const VectorDoublegetOrigin (int ispace=-1) const
 Return the current space context origin coordinates.
 
double getDistance (const SpacePoint &p1, const SpacePoint &p2, int ispace=0) const
 Return the distance between two space points for the current space context.
 
VectorDouble getDistances (const SpacePoint &p1, const SpacePoint &p2) const
 Return all the distances (space composits) between two space points for the current space context.
 
VectorDouble getIncrement (const SpacePoint &p1, const SpacePoint &p2, int ispace=0) const
 Return the increment vector between two space points for the current space context.
 
- 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
 
- Public Member Functions inherited from ICloneable
 ICloneable ()
 
virtual ~ICloneable ()
 
virtual ICloneableclone () const =0
 

Additional Inherited Members

- Static Public Member Functions inherited from ACov
static void gofDisplay (double gof, bool byValue=true, const VectorDouble &thresholds={2., 5., 10., 100})
 

Constructor & Destructor Documentation

◆ CovBase() [1/2]

CovBase::CovBase ( ACov cor = nullptr,
const MatrixSymmetric sills = MatrixSymmetric() 
)

◆ CovBase() [2/2]

CovBase::CovBase ( const CovBase r)

◆ ~CovBase()

CovBase::~CovBase ( )
virtual

Member Function Documentation

◆ addEvalCovVecRHSInPlace()

int CovBase::addEvalCovVecRHSInPlace ( vect  vect,
const VectorInt index1,
int  iech2,
const KrigOpt krigopt,
SpacePoint pin,
SpacePoint pout,
VectorDouble tabwork,
double  lambda = 1. 
) const
overridevirtual

Reimplemented from ACov.

◆ createParamInfoForCholSill()

ParamInfo CovBase::createParamInfoForCholSill ( int  ivar = 0,
int  jvar = 0 
)

◆ getCor()

const ACov * CovBase::getCor ( ) const
inline

◆ getNSills()

int CovBase::getNSills ( ) const
inline

◆ getNVar()

virtual int CovBase::getNVar ( ) const
inlineoverridevirtual

ACov Interface.

Reimplemented from ACov.

◆ getSill() [1/2]

const MatrixSymmetric & CovBase::getSill ( ) const
inline

◆ getSill() [2/2]

double CovBase::getSill ( int  ivar,
int  jvar 
) const

◆ getTabNoStatSills()

TabNoStatSills * CovBase::getTabNoStatSills ( ) const
inline

◆ getValue()

double CovBase::getValue ( const EConsElem &  econs,
int  iv1,
int  iv2 
) const
overridevirtual

Reimplemented from ACov.

◆ informCoords()

VectorDouble CovBase::informCoords ( const VectorVectorDouble coords,
const EConsElem &  econs,
int  iv1 = 0,
int  iv2 = 0 
) const

◆ informDbIn()

void CovBase::informDbIn ( const Db dbin) const

◆ informDbInForSills()

void CovBase::informDbInForSills ( const Db dbin) const

◆ informDbOut()

void CovBase::informDbOut ( const Db dbout) const

◆ informDbOutForSills()

void CovBase::informDbOutForSills ( const Db dbout) const

◆ informMeshByApex()

void CovBase::informMeshByApex ( const AMesh amesh) const

◆ informMeshByApexForSills()

void CovBase::informMeshByApexForSills ( const AMesh amesh) const

◆ informMeshByMesh()

void CovBase::informMeshByMesh ( const AMesh amesh) const

◆ informMeshByMeshForSills()

void CovBase::informMeshByMeshForSills ( const AMesh amesh) const

◆ initSill()

void CovBase::initSill ( double  value = 0.)

◆ isConsistent()

bool CovBase::isConsistent ( const ASpace space) const
overridevirtual

Implements ASpaceObject.

◆ isNoStatForVariance()

bool CovBase::isNoStatForVariance ( ) const
inline

◆ isOptimizationInitialized()

bool CovBase::isOptimizationInitialized ( const Db db = nullptr) const

Checks that the Optimization has already been initiated, by:

  • checking that the storage (for Sample Points projected in the Covariance rotation system) is already allocated
  • checking that the dimension of this storage is correct (only if 'db' is provided): in particular, this check is not necessary when freeing this storage.

◆ loadInfoValues()

void CovBase::loadInfoValues ( )
overridevirtual

Reimplemented from ACov.

◆ makeElemNoStat()

int CovBase::makeElemNoStat ( const EConsElem &  econs,
int  iv1,
int  iv2,
const AFunctional func = nullptr,
const Db db = nullptr,
const String namecol = String() 
)
overridevirtual

Reimplemented from ACov.

◆ makeSillNoStatDb()

void CovBase::makeSillNoStatDb ( const String namecol,
int  ivar = 0,
int  jvar = 0,
const Db db = nullptr 
)

◆ makeSillNoStatFunctional()

void CovBase::makeSillNoStatFunctional ( const AFunctional func,
int  ivar = 0,
int  jvar = 0 
)

◆ makeSillsStationary()

void CovBase::makeSillsStationary ( bool  silent = false)

◆ makeSillStationary()

void CovBase::makeSillStationary ( int  ivar = 0,
int  jvar = 0 
)

◆ nostatUpdate()

void CovBase::nostatUpdate ( CovInternal covint) const

Update the Model in the case of Non-stationary parameters This requires the knowledge of the two end-points

Parameters
[in]covintInternal structure for non-stationarity or NULL (for stationary case)

◆ operator=()

CovBase & CovBase::operator= ( const CovBase r)

◆ setCholSill()

void CovBase::setCholSill ( int  ivar,
int  jvar,
double  val 
) const

◆ setCor()

void CovBase::setCor ( ACov cor)
virtual

Reimplemented in CovProportional.

◆ setOptimEnabled()

void CovBase::setOptimEnabled ( bool  flag) const
inlineoverridevirtual

Reimplemented from ACov.

◆ setSill() [1/4]

void CovBase::setSill ( const MatrixSymmetric sill) const
virtual

Only valid when there is only one variable (in the context)

◆ setSill() [2/4]

void CovBase::setSill ( const VectorDouble sill) const
virtual

◆ setSill() [3/4]

void CovBase::setSill ( double  sill) const
virtual

◆ setSill() [4/4]

void CovBase::setSill ( int  ivar,
int  jvar,
double  sill 
) const
virtual

TODO : Test if sill matrix is positive definite (if not, generate a warning)

◆ updateCovByMesh()

void CovBase::updateCovByMesh ( int  imesh,
bool  aniso = true 
) const
overridevirtual

Reimplemented from ACov.

◆ updateCovByPoints()

void CovBase::updateCovByPoints ( int  icas1,
int  iech1,
int  icas2,
int  iech2 
) const
overridevirtual

Tell if the use of Optimization is enabled or not.

Update the Model according to the Non-stationary parameters

Parameters
icas1Type of first Db: 1 for Input; 2 for Output
iech1Rank of the target within Db1 (or -1)
icas2Type of first Db: 1 for Input; 2 for Output
iech2Rank of the target within Dbout (or -2)

Reimplemented from ACov.


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