1.4.0
CCC
 
Model Class Reference

Class containing the Model Information describing the formal Spatial (or Temporal) Characteristics of the (set of) random variable(s) under study. More...

#include <Model.hpp>

Inheritance diagram for Model:
AStringable ASerializable ICloneable

Detailed Description

Class containing the Model Information describing the formal Spatial (or Temporal) Characteristics of the (set of) random variable(s) under study.

The Model is essentially a container with two main contents:

  • the covariance part: see ACov.hpp for more information
  • the drift part: see DriftList.hpp for more information

The additional member CovContext only serves in carrying the following information:

  • the number of variables: if more than 1, the Model becomes multivariate
  • the field extension: this information is needed to get a stationary version to any covariance
  • the experimental mean vector and the variance-covariance matrix (used to calibrate the Model)

Public Member Functions

 Model (const CovContext &ctxt=CovContext())
 
 Model (int nvar, int ndim=2)
 
 Model (const Model &m)
 
Modeloperator= (const Model &m)
 
virtual ~Model ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 ICloneable interface. More...
 
int resetFromDb (const Db *db)
 
void setCovList (const ACovAnisoList *covalist)
 
void addCov (const CovAniso *cov)
 
void addCovFromParam (const ECov &type, double range=0., double sill=1., double param=1., const VectorDouble &ranges=VectorDouble(), const VectorDouble &sills=VectorDouble(), const VectorDouble &angles=VectorDouble(), bool flagRange=true)
 
void delCova (int icov)
 
void delAllCovas ()
 
void setDriftList (const DriftList *driftlist)
 
void setDriftIRF (int order=0, int nfex=0)
 
void setFlagLinked (bool flagLinked)
 
void addDrift (const ADrift *drift)
 
void setDrifts (const VectorString &driftSymbols)
 
void delDrift (int rank)
 
void delAllDrifts ()
 
int setAnam (const AAnam *anam, const VectorInt &strcnt=VectorInt())
 
int unsetAnam ()
 
bool isFlagGradient () const
 
bool isFlagGradientNumerical () const
 
bool isFlagGradientFunctional () const
 
bool isFlagLinked () const
 
CovAniso extractCova (int icov) const
 
void switchToGradient ()
 
const ACovAnisoListgetCovAnisoList () const
 TODO : to be removed (encapsulation of ACovAnisoList) More...
 
ACovAnisoListgetCovAnisoListModify ()
 
const CovAnisogetCova (int icov) const
 
CovAnisogetCova (int icov)
 
int getCovaNumber (bool skipNugget=false) const
 
const ECov & getCovaType (int icov) const
 
const MatrixSquareSymmetricgetSillValues (int icov) const
 
double getSill (int icov, int ivar, int jvar) const
 
double getRange (int icov) const
 
VectorDouble getRanges (int icov) const
 
double getParam (int icov) const
 
bool isCovaFiltered (int icov) const
 
bool isStationary () const
 
String getCovName (int icov) const
 
int getGradParamNumber (int icov) const
 
double getTotalSill (int ivar=0, int jvar=0) const
 
MatrixSquareSymmetric getTotalSills () const
 
double getBallRadius () const
 
const AnamHermitegetAnamHermite () const
 
double getMaximumDistance () const
 
int getCovaMinIRFOrder () const
 
bool hasAnam () const
 
const AAnamgetAnam () const
 
bool isChangeSupportDefined () const
 
void normalize (double sill)
 
bool hasNugget () const
 
int getRankNugget () const
 
VectorInt getActiveCovList () const
 
VectorInt getAllActiveCovList () const
 
bool isAllActiveCovList () const
 
void setTapeRange (double range)
 
void setOptimEnabled (bool flagOptim)
 
bool isOptimEnabled () const
 
double eval0 (int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral eval0Nvar (const CovCalcMode *mode=nullptr) const
 
void eval0MatInPlace (MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const
 
double eval (const SpacePoint &p1, const SpacePoint &p2, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalNvarIpas (double step, const VectorDouble &dir, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalMat (const SpacePoint &p1, const SpacePoint &p2, const CovCalcMode *mode=nullptr) const
 
void evalMatInPlace (const SpacePoint &p1, const SpacePoint &p2, MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalNvarIpasIncr (const VectorDouble &dincr, 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
 
double evalIvarIpas (double step, const VectorDouble &dir=VectorDouble(), int ivar=0, int jvar=0, 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)
 
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)
 
MatrixSquareGeneral evalCxvM (const SpacePoint &p1, const VectorDouble &ext, const VectorInt &ndisc, const VectorDouble &angles=VectorDouble(), const VectorDouble &x0=VectorDouble(), const CovCalcMode *mode=nullptr)
 
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)
 
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, 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)
 
MatrixRectangular evalCovMatrix (Db *db1, Db *db2=nullptr, int ivar0=-1, int jvar0=-1, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr)
 
MatrixSquareSymmetric evalCovMatrixSymmetric (Db *db1, int ivar0=-1, const VectorInt &nbgh1=VectorInt(), const CovCalcMode *mode=nullptr)
 
MatrixSparseevalCovMatrixSparse (Db *db1, Db *db2=nullptr, int ivar0=-1, int jvar0=-1, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr, double eps=EPSILON3)
 
VectorDouble evalCovMatrixV (Db *db1, Db *db2=nullptr, int ivar0=-1, int jvar0=-1, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), const CovCalcMode *mode=nullptr)
 
MatrixRectangular evalCovMatrixOptim (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)
 
MatrixSquareSymmetric evalCovMatrixSymmetricOptim (const Db *db1, int ivar0=-1, const VectorInt &nbgh1=VectorInt(), const CovCalcMode *mode=nullptr)
 
void evalMatOptimInPlace (int icas1, int iech1, int icas2, int iech2, MatrixSquareGeneral &mat, 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)
 
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
 
void evalZAndGradients (const SpacePoint &p1, const SpacePoint &p2, double &covVal, VectorDouble &covGp, VectorDouble &covGG, const CovCalcMode *mode=nullptr, bool flagGrad=false) const
 
void evalZAndGradients (const VectorDouble &vec, double &covVal, VectorDouble &covGp, VectorDouble &covGG, const CovCalcMode *mode=nullptr, bool flagGrad=false) const
 
double evalCov (const VectorDouble &incr, int icov=0, const ECalcMember &member=ECalcMember::fromKey("LHS")) const
 
void setSill (int icov, int ivar, int jvar, double value)
 
void setRangeIsotropic (int icov, double range)
 
void setMarkovCoeffs (int icov, const VectorDouble &coeffs)
 
void setCovaFiltered (int icov, bool filtered)
 
void setActiveFactor (int iclass)
 
int getActiveFactor () const
 
int getAnamNClass () const
 
const DriftListgetDriftList () const
 TODO : to be removed (encapsulation of DriftList) More...
 
const ADriftgetDrift (int il) const
 
int getDriftNumber () const
 
int getExternalDriftNumber () const
 
int getRankFext (int il) const
 
int getDriftEquationNumber () const
 
bool isDriftFiltered (unsigned int il) const
 
int getDriftMaxIRFOrder (void) const
 
bool isDriftDefined (const VectorInt &powers, int rank_fex=0) const
 
bool isDriftDifferentDefined (const VectorInt &powers, int rank_fex=-1) const
 
bool isDriftSampleDefined (const Db *db, int ib, int nech, const VectorInt &nbgh, const ELoc &loctype) const
 
void setDriftFiltered (int il, bool filtered)
 
VectorVectorDouble getDrifts (const Db *db, bool useSel=true)
 
void setBetaHat (const VectorDouble &betaHat)
 
double evalDrift (const Db *db, int iech, int il, const ECalcMember &member=ECalcMember::fromKey("LHS")) const
 
double evalDriftValue (const Db *db, int iech, int ivar, int ib, const ECalcMember &member=ECalcMember::fromKey("LHS")) const
 
VectorDouble evalDriftBySample (const Db *db, int iech, const ECalcMember &member=ECalcMember::fromKey("LHS")) const
 
void evalDriftBySampleInPlace (const Db *db, int iech, const ECalcMember &member, VectorDouble &drftab) const
 
MatrixRectangular evalDriftMatrix (const Db *db, int ivar0=-1, const VectorInt &nbgh=VectorInt(), const ECalcMember &member=ECalcMember::fromKey("LHS")) const
 
double evalDriftVarCoef (const Db *db, int iech, int ivar, const VectorDouble &coeffs) const
 
VectorDouble evalDriftVarCoefs (const Db *db, const VectorDouble &coeffs, int ivar=0, bool useSel=false) const
 
const CovContextgetContext () const
 TODO : to be removed (encapsulation of Context) More...
 
const ASpacegetASpace () const
 
const VectorDoublegetMeans () const
 
double getMean (int ivar) const
 
const VectorDoublegetCovar0s () const
 
double getCovar0 (int ivar, int jvar) const
 
double getField () const
 
int getDimensionNumber () const
 
void setMeans (const VectorDouble &mean)
 
void setMean (double mean, int ivar=0)
 
void setCovar0s (const VectorDouble &covar0)
 
void setCovar0 (int ivar, int jvar, double covar0)
 
void setField (double field)
 
const EModelProperty & getCovMode () const
 
Modelduplicate () const
 
ModelcreateReduce (const VectorInt &validVars) const
 
int getVariableNumber () const
 
int hasExternalCov () const
 
VectorDouble sampleUnitary (const VectorDouble &hh, int ivar=0, int jvar=0, VectorDouble codir=VectorDouble(), const CovCalcMode *mode=nullptr)
 
VectorDouble envelop (const VectorDouble &hh, int ivar=0, int jvar=0, int isign=1, VectorDouble codir=VectorDouble(), const CovCalcMode *mode=nullptr)
 
int fitFromCovIndices (Vario *vario, const VectorECov &types=ECov::fromKeys({"EXPONENTIAL"}), const Constraints &constraints=Constraints(), const Option_VarioFit &optvar=Option_VarioFit(), const Option_AutoFit &mauto=Option_AutoFit(), bool verbose=false)
 
int fit (Vario *vario, const VectorECov &types=ECov::fromKeys({"SPHERICAL"}), const Constraints &constraints=Constraints(), const Option_VarioFit &optvar=Option_VarioFit(), const Option_AutoFit &mauto=Option_AutoFit(), bool verbose=false)
 
int fitFromVMap (DbGrid *dbmap, const VectorECov &types=ECov::fromKeys({"SPHERICAL"}), const Constraints &constraints=Constraints(), const Option_VarioFit &optvar=Option_VarioFit(), const Option_AutoFit &mauto=Option_AutoFit(), bool verbose=false)
 
int buildVmapOnDbGrid (DbGrid *dbgrid, const NamingConvention &namconv=NamingConvention("VMAP")) const
 
int stabilize (double percent, bool verbose=false)
 
int standardize (bool verbose=false)
 
double gofToVario (const Vario *vario, bool verbose=true)
 
bool isValid () const
 
VectorDouble sample (const VectorDouble &h, const VectorDouble &codir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr, const CovInternal *covint=nullptr)
 
double evaluateOneIncr (double hh, const VectorDouble &codir=VectorDouble(), int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr)
 
void evaluateMatInPlace (const CovInternal *covint, const VectorDouble &d1, MatrixSquareGeneral &covtab, bool flag_init=false, double weight=1., const CovCalcMode *mode=nullptr)
 
double evaluateOneGeneric (const CovInternal *covint, const VectorDouble &d1=VectorDouble(), double weight=1., const CovCalcMode *mode=nullptr)
 
VectorDouble evaluateFromDb (Db *db, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr)
 
double calculateStdev (Db *db1, int iech1, Db *db2, int iech2, bool verbose=false, double factor=1., const CovCalcMode *mode=nullptr)
 
double computeLogLikelihood (Db *db, bool verbose=false)
 
- 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 ASerializable
 ASerializable ()
 
 ASerializable (const ASerializable &r)
 
ASerializableoperator= (const ASerializable &r)
 
virtual ~ASerializable ()
 
bool deserialize (std::istream &is, bool verbose=true)
 
bool serialize (std::ostream &os, bool verbose=true) const
 
bool dumpToNF (const String &neutralFilename, bool verbose=false) const
 
- Public Member Functions inherited from ICloneable
 ICloneable ()
 
virtual ~ICloneable ()
 
virtual ICloneableclone () const =0
 

Static Public Member Functions

static Modelcreate (const CovContext &ctxt=CovContext())
 
static ModelcreateFromEnvironment (int nvar, int ndim=2)
 
static ModelcreateNugget (int nvar, int ndim=2, double sill=1.)
 
static ModelcreateFromParam (const ECov &type=ECov::fromKey("NUGGET"), double range=1., double sill=1., double param=1., const VectorDouble &ranges=VectorDouble(), const VectorDouble &sills=VectorDouble(), const VectorDouble &angles=VectorDouble(), const ASpace *space=nullptr, bool flagRange=true)
 
static ModelcreateFromDb (const Db *db)
 
static ModelcreateFromNF (const String &neutralFilename, bool verbose=true)
 
static void gofDisplay (double gof, bool byValue=true, const VectorDouble &thresholds={2., 5., 10., 100})
 
static VectorECov initCovList (const VectorInt &covranks)
 
- Static Public Member Functions inherited from ASerializable
static String buildFileName (int status, const String &filename, bool ensureDirExist=false)
 
static String getHomeDirectory (const String &sub="")
 
static String getWorkingDirectory ()
 
static String getTestData (const String &subdir, const String &filename)
 
static String getFileIdentity (const String &filename, bool verbose=false)
 
static void setContainerName (bool useDefault, const String &containerName="", bool verbose=false)
 
static void unsetContainerName ()
 
static void setPrefixName (const String &prefixName)
 
static void unsetPrefixName ()
 
static const StringgetContainerName ()
 
static const StringgetPrefixName ()
 
static bool createDirectory (const String &dir)
 
static String getExecDirectory ()
 
static String getDirectory (const String &path)
 

Constructor & Destructor Documentation

◆ Model() [1/3]

Model::Model ( const CovContext ctxt = CovContext())

◆ Model() [2/3]

Model::Model ( int  nvar,
int  ndim = 2 
)

◆ Model() [3/3]

Model::Model ( const Model m)

◆ ~Model()

Model::~Model ( )
virtual

Member Function Documentation

◆ addCov()

void Model::addCov ( const CovAniso cov)

◆ addCovFromParam()

void Model::addCovFromParam ( const ECov &  type,
double  range = 0.,
double  sill = 1.,
double  param = 1.,
const VectorDouble ranges = VectorDouble(),
const VectorDouble sills = VectorDouble(),
const VectorDouble angles = VectorDouble(),
bool  flagRange = true 
)

◆ addDrift()

void Model::addDrift ( const ADrift drift)

◆ buildVmapOnDbGrid()

int Model::buildVmapOnDbGrid ( DbGrid dbgrid,
const NamingConvention namconv = NamingConvention("VMAP") 
) const

Calculate the variogram map from a Model (presented as Variogram, not Covariance)

Returns
Error return code
Parameters
[in]dbgridGrid structure
[in]namconvNaming convention

◆ calculateStdev()

double Model::calculateStdev ( Db db1,
int  iech1,
Db db2,
int  iech2,
bool  verbose = false,
double  factor = 1.,
const CovCalcMode mode = nullptr 
)

Returns the standard deviation at a given increment for a given model between two samples of two Dbs

Parameters
[in]db1First Db
[in]iech1Rank in the first Db
[in]db2Second Db
[in]iech2Rank in the second Db
[in]verboseVerbose flag
[in]factorMultiplicative factor for standard deviation
[in]modeCovCalcMode structure

◆ coefficientOfVariation()

double Model::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
inline

◆ computeLogLikelihood()

double Model::computeLogLikelihood ( Db db,
bool  verbose = false 
)

Compute the log-likelihood (based on covariance)

Parameters
dbDb structure where variable are loaded from
verboseVerbose flag
Remarks
The calculation considers all the active samples.
It can work in multivariate case with or without drift conditions (linked or not)
The algorithm is stopped (with a message) in the heterotopic case // TODO; improve for heterotopic case

◆ create()

Model * Model::create ( const CovContext ctxt = CovContext())
static

◆ createFromDb()

Model * Model::createFromDb ( const Db db)
static

◆ createFromEnvironment()

Model * Model::createFromEnvironment ( int  nvar,
int  ndim = 2 
)
static

◆ createFromNF()

Model * Model::createFromNF ( const String neutralFilename,
bool  verbose = true 
)
static

◆ createFromParam()

Model * Model::createFromParam ( const ECov &  type = ECov::fromKey("NUGGET"),
double  range = 1.,
double  sill = 1.,
double  param = 1.,
const VectorDouble ranges = VectorDouble(),
const VectorDouble sills = VectorDouble(),
const VectorDouble angles = VectorDouble(),
const ASpace space = nullptr,
bool  flagRange = true 
)
static

◆ createNugget()

Model * Model::createNugget ( int  nvar,
int  ndim = 2,
double  sill = 1. 
)
static

◆ createReduce()

Model * Model::createReduce ( const VectorInt validVars) const

◆ delAllCovas()

void Model::delAllCovas ( )

◆ delAllDrifts()

void Model::delAllDrifts ( )

◆ delCova()

void Model::delCova ( int  icov)

◆ delDrift()

void Model::delDrift ( int  rank)

◆ duplicate()

Model * Model::duplicate ( ) const

◆ envelop()

VectorDouble Model::envelop ( const VectorDouble hh,
int  ivar = 0,
int  jvar = 0,
int  isign = 1,
VectorDouble  codir = VectorDouble(),
const CovCalcMode mode = nullptr 
)

◆ eval()

double Model::eval ( const SpacePoint p1,
const SpacePoint p2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
inline

◆ eval0()

double Model::eval0 ( int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
inline

◆ eval0MatInPlace()

void Model::eval0MatInPlace ( MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
inline

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

◆ eval0Nvar()

MatrixSquareGeneral Model::eval0Nvar ( const CovCalcMode mode = nullptr) const
inline

◆ evalAverageDbToDb()

double Model::evalAverageDbToDb ( const Db db1,
const Db db2,
int  ivar = 0,
int  jvar = 0,
double  eps = 0.,
int  seed = 434132,
const CovCalcMode mode = nullptr 
) const
inline

◆ evalAverageIncrToIncr()

double Model::evalAverageIncrToIncr ( const VectorVectorDouble d1,
const VectorVectorDouble d2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
inline

◆ evalAveragePointToDb()

double Model::evalAveragePointToDb ( const SpacePoint p1,
const Db db2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
)
inline

◆ evalCov()

double Model::evalCov ( const VectorDouble incr,
int  icov = 0,
const ECalcMember &  member = ECalcMember::fromKey("LHS") 
) const

◆ evalCvv()

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

◆ evalCvvM()

MatrixSquareGeneral Model::evalCvvM ( const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const CovCalcMode mode = nullptr 
)
inline

◆ evalCvvShift()

double Model::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
inline

◆ evalCxv()

double Model::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 
)
inline

◆ evalCxvM()

MatrixSquareGeneral Model::evalCxvM ( const SpacePoint p1,
const VectorDouble ext,
const VectorInt ndisc,
const VectorDouble angles = VectorDouble(),
const VectorDouble x0 = VectorDouble(),
const CovCalcMode mode = nullptr 
)
inline

◆ evalDrift()

double Model::evalDrift ( const Db db,
int  iech,
int  il,
const ECalcMember &  member = ECalcMember::fromKey("LHS") 
) const

Evaluate a given drift function for a given sample

Parameters
dbDb structure
iechRank of the target sample
ilRank of the drift function
memberMember type (used to check filtering)
Returns

◆ evalDriftBySample()

VectorDouble Model::evalDriftBySample ( const Db db,
int  iech,
const ECalcMember &  member = ECalcMember::fromKey("LHS") 
) const

◆ evalDriftBySampleInPlace()

void Model::evalDriftBySampleInPlace ( const Db db,
int  iech,
const ECalcMember &  member,
VectorDouble drftab 
) const

◆ evalDriftMatrix()

MatrixRectangular Model::evalDriftMatrix ( const Db db,
int  ivar0 = -1,
const VectorInt nbgh = VectorInt(),
const ECalcMember &  member = ECalcMember::fromKey("LHS") 
) const
inline

◆ evalDriftValue()

double Model::evalDriftValue ( const Db db,
int  iech,
int  ivar,
int  ib,
const ECalcMember &  member = ECalcMember::fromKey("LHS") 
) const

◆ evalDriftVarCoef()

double Model::evalDriftVarCoef ( const Db db,
int  iech,
int  ivar,
const VectorDouble coeffs 
) const

Evaluate the drift with a given sample and a given variable The value is scaled by 'coeffs'

Parameters
[in]dbDb structure
[in]iechRank of the sample
[in]ivarRank of the variable
[in]coeffsVector of coefficients

◆ evalDriftVarCoefs()

VectorDouble Model::evalDriftVarCoefs ( const Db db,
const VectorDouble coeffs,
int  ivar = 0,
bool  useSel = false 
) const

A vector of the drift evaluation (for all samples)

Parameters
dbDb structure
coeffsVector of drift coefficients
ivarVariable rank (used for constant drift value)
useSelWhen TRUE, only non masked samples are returned
Returns
The vector of values
Remarks
When no drift is defined, a vector is returned filled with the variable mean

◆ evalIvarIpas()

double Model::evalIvarIpas ( double  step,
const VectorDouble dir = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
inline

◆ evalIvarNpas()

VectorDouble Model::evalIvarNpas ( const VectorDouble vec_step,
const VectorDouble dir = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
inline

◆ evalMat()

MatrixSquareGeneral Model::evalMat ( const SpacePoint p1,
const SpacePoint p2,
const CovCalcMode mode = nullptr 
) const
inline

◆ evalMatInPlace()

void Model::evalMatInPlace ( const SpacePoint p1,
const SpacePoint p2,
MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
inline

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

◆ evalMatOptimInPlace()

void Model::evalMatOptimInPlace ( int  icas1,
int  iech1,
int  icas2,
int  iech2,
MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
inline

Calculate the Matrix of covariance between two elements of two Dbs (defined beforehand)

Parameters
icas1Origin of the Db containing the first point
iech1Rank of the first point
icas2Origin of the Db containing the second point
iech2Rank of the second point
matCovariance matrix (Dimension: nvar * nvar)
modeCalculation Options
Remarks
: Matrix 'mat' should be dimensioned and initialized beforehand

◆ evalNvarIpas()

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

◆ evalNvarIpasIncr()

MatrixSquareGeneral Model::evalNvarIpasIncr ( const VectorDouble dincr,
const CovCalcMode mode = nullptr 
) const
inline

◆ evalPointToDb()

VectorDouble Model::evalPointToDb ( const SpacePoint p1,
const Db db2,
int  ivar = 0,
int  jvar = 0,
bool  useSel = true,
const VectorInt nbgh2 = VectorInt(),
const CovCalcMode mode = nullptr 
)
inline

◆ evalPointToDbAsSP()

VectorDouble Model::evalPointToDbAsSP ( const std::vector< SpacePoint > &  p1s,
const SpacePoint p2,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
inline

◆ evaluateFromDb()

VectorDouble Model::evaluateFromDb ( Db db,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
)

Evaluate the model on a Db

Parameters
[in]dbDb structure
[in]ivarRank of the first variable
[in]jvarRank of the second variable
[in]modeCovCalcMode structure

◆ evaluateMatInPlace()

void Model::evaluateMatInPlace ( const CovInternal covint,
const VectorDouble d1,
MatrixSquareGeneral covtab,
bool  flag_init = false,
double  weight = 1.,
const CovCalcMode mode = nullptr 
)

Returns the covariances for an increment This is the generic internal function It can be called for stationary or non-stationary case

Parameters
[in]covintInternal structure for non-stationarityAddress for the next term after the drift or NULL (for stationary case)
[in]modeCovCalcMode structure
[in]flag_initInitialize the array beforehand
[in]weightMultiplicative weight
[in]d1Distance vector
[out]covtabCovariance array

◆ evaluateOneGeneric()

double Model::evaluateOneGeneric ( const CovInternal covint,
const VectorDouble d1 = VectorDouble(),
double  weight = 1.,
const CovCalcMode mode = nullptr 
)

Returns the covariance for an increment This is the generic internal function It can be called for stationary or non-stationary case

Parameters
[in]covintInternal structure for non-stationarityAddress for the next term after the drift or NULL (for stationary case)
[in]modeCovCalcMode structure
[in]weightMultiplicative weight
[in]d1Distance vector

◆ evaluateOneIncr()

double Model::evaluateOneIncr ( double  hh,
const VectorDouble codir = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
)

Calculate the value of the model for a set of distances

Returns
The model value
Parameters
[in]ivarRank of the first variable
[in]jvarRank of the second variable
[in]modeCovCalcMode structure
[in]codirArray giving the direction coefficients (optional)
[in]hhVector of increments

◆ evalZAndGradients() [1/2]

void Model::evalZAndGradients ( const SpacePoint p1,
const SpacePoint p2,
double &  covVal,
VectorDouble covGp,
VectorDouble covGG,
const CovCalcMode mode = nullptr,
bool  flagGrad = false 
) const

◆ evalZAndGradients() [2/2]

void Model::evalZAndGradients ( const VectorDouble vec,
double &  covVal,
VectorDouble covGp,
VectorDouble covGG,
const CovCalcMode mode = nullptr,
bool  flagGrad = false 
) const

◆ extensionVariance()

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

◆ extractCova()

CovAniso Model::extractCova ( int  icov) const

◆ fit()

int Model::fit ( Vario vario,
const VectorECov types = ECov::fromKeys({"SPHERICAL"}),
const Constraints constraints = Constraints(),
const Option_VarioFit optvar = Option_VarioFit(),
const Option_AutoFit mauto = Option_AutoFit(),
bool  verbose = false 
)

Automatic Fitting procedure from an experimental Variogram

Parameters
varioExperimental variogram to be fitted
typesVector of ECov (see remarks)
constraintsSet of Constraints
optvarSet of options
mautoSpecial parameters for Automatic fitting procedure (instance of Option_AutoFit), for exemple wmode (type of weighting function)
verboseVerbose option
Remarks
If no list of specific basic structure is specified, the automatic fitting is performed using a single spherical structure by default.
Returns
0 if no error, 1 otherwise

TODO : What to do with that ?

◆ fitFromCovIndices()

int Model::fitFromCovIndices ( Vario vario,
const VectorECov types = ECov::fromKeys({"EXPONENTIAL"}),
const Constraints constraints = Constraints(),
const Option_VarioFit optvar = Option_VarioFit(),
const Option_AutoFit mauto = Option_AutoFit(),
bool  verbose = false 
)

Automatic Fitting procedure

Parameters
varioExperimental variogram to be fitted
typesVector of ECov integer values
constraintsSet of Constraints
optvarSet of options
mautoSpecial parameters for Automatic fitting procedure
verboseVerbose option
Returns
0 if no error, 1 otherwise

TODO : What to do with that ?

◆ fitFromVMap()

int Model::fitFromVMap ( DbGrid dbmap,
const VectorECov types = ECov::fromKeys({"SPHERICAL"}),
const Constraints constraints = Constraints(),
const Option_VarioFit optvar = Option_VarioFit(),
const Option_AutoFit mauto = Option_AutoFit(),
bool  verbose = false 
)

Automatic Fitting procedure from A Variogram Map stored on a DbGrid

Parameters
dbmapDbGrid containing the Variogram Map
typesVector of ECov
constraintsSet of Constraints
optvarSet of options
mautoSpecial parameters for Automatic fitting procedure (instance of Option_AutoFit), for exemple wmode (type of weighting function)
verboseVerbose option
Returns
0 if no error, 1 otherwise

◆ getActiveCovList()

VectorInt Model::getActiveCovList ( ) const

◆ getActiveFactor()

int Model::getActiveFactor ( ) const

◆ getAllActiveCovList()

VectorInt Model::getAllActiveCovList ( ) const

◆ getAnam()

const AAnam * Model::getAnam ( ) const

◆ getAnamHermite()

const AnamHermite * Model::getAnamHermite ( ) const

◆ getAnamNClass()

int Model::getAnamNClass ( ) const

◆ getASpace()

const ASpace* Model::getASpace ( ) const
inline

◆ getBallRadius()

double Model::getBallRadius ( ) const

Returns the Ball radius (from the first covariance of _covaList)

Returns
Value of the Ball Radius (if defined, i.e. for Numerical Gradient calculation)

◆ getContext()

const CovContext& Model::getContext ( ) const
inline

TODO : to be removed (encapsulation of Context)

◆ getCova() [1/2]

CovAniso * Model::getCova ( int  icov)

◆ getCova() [2/2]

const CovAniso * Model::getCova ( int  icov) const

◆ getCovaMinIRFOrder()

int Model::getCovaMinIRFOrder ( ) const

◆ getCovAnisoList()

const ACovAnisoList * Model::getCovAnisoList ( ) const

TODO : to be removed (encapsulation of ACovAnisoList)

◆ getCovAnisoListModify()

ACovAnisoList * Model::getCovAnisoListModify ( )

◆ getCovaNumber()

int Model::getCovaNumber ( bool  skipNugget = false) const

◆ getCovar0()

double Model::getCovar0 ( int  ivar,
int  jvar 
) const
inline

◆ getCovar0s()

const VectorDouble& Model::getCovar0s ( ) const
inline

◆ getCovaType()

const ECov & Model::getCovaType ( int  icov) const

◆ getCovMode()

const EModelProperty & Model::getCovMode ( ) const

◆ getCovName()

String Model::getCovName ( int  icov) const

◆ getDimensionNumber()

int Model::getDimensionNumber ( ) const
inline

◆ getDrift()

const ADrift * Model::getDrift ( int  il) const

◆ getDriftEquationNumber()

int Model::getDriftEquationNumber ( ) const

◆ getDriftList()

const DriftList * Model::getDriftList ( ) const

TODO : to be removed (encapsulation of DriftList)

◆ getDriftMaxIRFOrder()

int Model::getDriftMaxIRFOrder ( void  ) const

◆ getDriftNumber()

int Model::getDriftNumber ( ) const

◆ getDrifts()

VectorVectorDouble Model::getDrifts ( const Db db,
bool  useSel = true 
)

◆ getExternalDriftNumber()

int Model::getExternalDriftNumber ( ) const

◆ getField()

double Model::getField ( ) const
inline

◆ getGradParamNumber()

int Model::getGradParamNumber ( int  icov) const

◆ getMaximumDistance()

double Model::getMaximumDistance ( ) const

◆ getMean()

double Model::getMean ( int  ivar) const
inline

◆ getMeans()

const VectorDouble& Model::getMeans ( ) const
inline

◆ getParam()

double Model::getParam ( int  icov) const

◆ getRange()

double Model::getRange ( int  icov) const

◆ getRanges()

VectorDouble Model::getRanges ( int  icov) const

◆ getRankFext()

int Model::getRankFext ( int  il) const

◆ getRankNugget()

int Model::getRankNugget ( ) const

◆ getSill()

double Model::getSill ( int  icov,
int  ivar,
int  jvar 
) const

◆ getSillValues()

const MatrixSquareSymmetric & Model::getSillValues ( int  icov) const

◆ getTotalSill()

double Model::getTotalSill ( int  ivar = 0,
int  jvar = 0 
) const

◆ getTotalSills()

MatrixSquareSymmetric Model::getTotalSills ( ) const

◆ getVariableNumber()

int Model::getVariableNumber ( ) const
inline

◆ gofDisplay()

void Model::gofDisplay ( double  gof,
bool  byValue = true,
const VectorDouble thresholds = {2., 5., 10., 100} 
)
static

Printout of statement concerning the Quality of the GOF

Parameters
gofValue of the Gof
byValuetrue: display GOF value; false: print its quality level
thresholdsVector giving the Quality thresholds

◆ gofToVario()

double Model::gofToVario ( const Vario vario,
bool  verbose = true 
)

Evaluate the Goodness-of_fit of the Model on the Experimental Variogram It is expressed as the average departure between Model and Variogram scaled to the variance. As this variance may be poorly calculated (< gmax / 5), it may be replaced by the largest value (gmax) divided by 2 (highly non_stationary cases).

Parameters
varioExperimental variogram
verboseVerbose flag
Returns
Value for the Goodness-of_fit (as percentage of the total sill)

◆ hasAnam()

bool Model::hasAnam ( ) const

◆ hasExternalCov()

int Model::hasExternalCov ( ) const

◆ hasNugget()

bool Model::hasNugget ( ) const

◆ initCovList()

VectorECov Model::initCovList ( const VectorInt covranks)
static

◆ isAllActiveCovList()

bool Model::isAllActiveCovList ( ) const

◆ isChangeSupportDefined()

bool Model::isChangeSupportDefined ( ) const

◆ isCovaFiltered()

bool Model::isCovaFiltered ( int  icov) const

◆ isDriftDefined()

bool Model::isDriftDefined ( const VectorInt powers,
int  rank_fex = 0 
) const

◆ isDriftDifferentDefined()

bool Model::isDriftDifferentDefined ( const VectorInt powers,
int  rank_fex = -1 
) const

◆ isDriftFiltered()

bool Model::isDriftFiltered ( unsigned int  il) const

◆ isDriftSampleDefined()

bool Model::isDriftSampleDefined ( const Db db,
int  ib,
int  nech,
const VectorInt nbgh,
const ELoc &  loctype 
) const

◆ isFlagGradient()

bool Model::isFlagGradient ( ) const

◆ isFlagGradientFunctional()

bool Model::isFlagGradientFunctional ( ) const

◆ isFlagGradientNumerical()

bool Model::isFlagGradientNumerical ( ) const

◆ isFlagLinked()

bool Model::isFlagLinked ( ) const

◆ isOptimEnabled()

bool Model::isOptimEnabled ( ) const
inline

◆ isStationary()

bool Model::isStationary ( ) const

◆ isValid()

bool Model::isValid ( ) const

◆ normalize()

void Model::normalize ( double  sill)

◆ operator=()

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

◆ resetFromDb()

int Model::resetFromDb ( const Db db)

◆ sample()

VectorDouble Model::sample ( const VectorDouble h,
const VectorDouble codir = VectorDouble(),
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr,
const CovInternal covint = nullptr 
)

Calculate the value of the model for a set of distances

Returns
Array containing the model values
Parameters
[in]ivarRank of the first variable
[in]jvarRank of the second variable
[in]codirArray giving the direction coefficients (optional)
[in]hVector of increments
[in]modeCovCalcMode structure
[in]covintNon-stationary parameters

◆ sampleUnitary()

VectorDouble Model::sampleUnitary ( const VectorDouble hh,
int  ivar = 0,
int  jvar = 0,
VectorDouble  codir = VectorDouble(),
const CovCalcMode mode = nullptr 
)

Returns the value of the normalized covariance (by the variance/covariance value) for a given pair of variables

Parameters
hhVector of distances
ivarRank of the first variable
jvarRank of the second variable
codirDirection coefficients
modeCovCalcMode structure
Returns

◆ samplingDensityVariance()

double Model::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
inline

◆ setActiveFactor()

void Model::setActiveFactor ( int  iclass)

◆ setAnam()

int Model::setAnam ( const AAnam anam,
const VectorInt strcnt = VectorInt() 
)

Defining an Anamorphosis information for the Model (in fact, this is added to ACovAnisoList part and transforms it from CovLMC to CovLMCAnamorphosis

Parameters
anamPointer to the anamorphosis
strcntArray of covariance description used for IR case
Returns

◆ setBetaHat()

void Model::setBetaHat ( const VectorDouble betaHat)

◆ setCovaFiltered()

void Model::setCovaFiltered ( int  icov,
bool  filtered 
)

◆ setCovar0()

void Model::setCovar0 ( int  ivar,
int  jvar,
double  covar0 
)

◆ setCovar0s()

void Model::setCovar0s ( const VectorDouble covar0)

◆ setCovList()

void Model::setCovList ( const ACovAnisoList covalist)

Add a list of Covariances. This operation cleans any previously stored covariance

Parameters
covalistList of Covariances to be added

◆ setDriftFiltered()

void Model::setDriftFiltered ( int  il,
bool  filtered 
)

◆ setDriftIRF()

void Model::setDriftIRF ( int  order = 0,
int  nfex = 0 
)

Define the list of drift functions for:

  • a given degree of the IRF
  • a given number of external drifts
    Parameters
    orderOrder of the IRF
    nfexNumber of External Drifts
    Remarks
    This method deletes any pre-existing drift functions and replaces them by the new definition
    This replacement is performed accounting for information stored in 'model', such as:
  • the space dimension
  • the number of variables

◆ setDriftList()

void Model::setDriftList ( const DriftList driftlist)

Add a list of Drifts. This operation cleans any previously stored drift function

Parameters
driftlistList of Drifts to be added
Remarks
This method deletes any pre-existing drift functions

◆ setDrifts()

void Model::setDrifts ( const VectorString driftSymbols)

◆ setField()

void Model::setField ( double  field)

◆ setFlagLinked()

void Model::setFlagLinked ( bool  flagLinked)

◆ setMarkovCoeffs()

void Model::setMarkovCoeffs ( int  icov,
const VectorDouble coeffs 
)

◆ setMean()

void Model::setMean ( double  mean,
int  ivar = 0 
)

◆ setMeans()

void Model::setMeans ( const VectorDouble mean)

◆ setOptimEnabled()

void Model::setOptimEnabled ( bool  flagOptim)
inline

◆ setRangeIsotropic()

void Model::setRangeIsotropic ( int  icov,
double  range 
)

◆ setSill()

void Model::setSill ( int  icov,
int  ivar,
int  jvar,
double  value 
)

◆ setTapeRange()

void Model::setTapeRange ( double  range)

◆ specificVolume()

double Model::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
inline

◆ specificVolumeFromCoV()

double Model::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
inline

◆ stabilize()

int Model::stabilize ( double  percent,
bool  verbose = false 
)

Stabilize the model (in the monovariate case)

Returns
Error returned code
Parameters
[in]percentPercentage of nugget effect added
[in]verbosetrue for a verbose output
Remarks
If the model only contains GAUSSIAN structures, add
a NUGGET EFFECT structure with a sill equal to a percentage
of the total sill of the GAUSSIAN component(s)
This function does not do anything in the multivariate case

◆ standardize()

int Model::standardize ( bool  verbose = false)

Normalize the model

Parameters
[in]verbosetrue for a verbose output

◆ switchToGradient()

void Model::switchToGradient ( )

Switch to a Model dedicated to Gradients (transforms it from CovLMC to CovLMGradient)

◆ toString()

String Model::toString ( const AStringFormat strfmt = nullptr) const
overridevirtual

ICloneable interface.

AStringable Interface

Reimplemented from AStringable.

◆ unsetAnam()

int Model::unsetAnam ( )

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