gstlearn  1.0.0
CCC
CovAniso Class Reference

#include <CovAniso.hpp>

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

Public Member Functions

 CovAniso (const ECov &type, const CovContext &ctxt)
 
 CovAniso (const String &symbol, const CovContext &ctxt)
 
 CovAniso (const ECov &type, double range, double param, double sill, const CovContext &ctxt, bool flagRange=true)
 
 CovAniso (const CovAniso &r)
 
CovAnisooperator= (const CovAniso &r)
 
virtual ~CovAniso ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 ICloneable Interface. More...
 
virtual bool isConsistent (const ASpace *space) const override
 ASpaceObject Interface. More...
 
virtual int getNVariables () const override
 ACov Interface. More...
 
virtual double eval0 (int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const override
 ACov Interface. More...
 
virtual void eval0MatInPlace (MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const override
 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 override
 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 override
 Calculate the matrix of covariances between two points (general case) More...
 
virtual double evalCovOnSphere (double alpha, int degree, bool normalize=true) const override
 
virtual double evalSpectrum (const VectorDouble &freq, int ivar=0, int jvar=0) const override
 
virtual double getIntegralRange (int ndisc, double hmax) const
 
virtual String getFormula () const
 
virtual double getBallRadius () const
 
void optimizationPreProcess (const std::vector< SpacePoint > &vec) const
 Functions specific to optimization. More...
 
void optimizationPostProcess () const
 
void optimizationSetTarget (const SpacePoint &pt) const
 
void evalOptimInPlace (VectorDouble &res, int ivar=0, int jvar=0, const CovCalcMode *mode=nullptr) const
 
void evalMatOptimInPlace (int iech1, int iech2, MatrixSquareGeneral &mat, const CovCalcMode *mode=nullptr) const
 
void setContext (const CovContext &ctxt)
 
void setParam (double param)
 
void copyCovContext (const CovContext &ctxt)
 
void setSill (double sill)
 
void setSill (const MatrixSquareSymmetric &sill)
 Only valid when there is only one variable (in the context) More...
 
void setSill (const VectorDouble &sill)
 
void setSill (int ivar, int jvar, double sill)
 
void initSill (double value=0.)
 
void setRange (double range)
 Practical range. More...
 
void setRange (int idim, double range)
 Make the covariance isotropic. More...
 
void setRanges (const VectorDouble &ranges)
 
void setScale (double scale)
 
void setScale (int idim, double scale)
 Make the covariance isotropic. More...
 
void setScales (const VectorDouble &scales)
 
void setAnisoRotation (const Rotation &rot)
 
void setAnisoRotation (const VectorDouble &rot)
 
void setAnisoAngles (const VectorDouble &angles)
 
void setAnisoAngle (int idim, double angle)
 
const MatrixSquareSymmetricgetSill () const
 
double getSill (int ivar, int jvar) const
 
double getSlope (int ivar, int jvar) const
 
VectorDouble getRanges () const
 
const RotationgetAnisoRotation () const
 
const VectorDoublegetScales () const
 
void setType (const ECov &type)
 
double getRange () const
 
double getScale () const
 
bool getFlagAniso () const
 
bool getFlagRotation () const
 
double getRange (int idim) const
 
double getScale (int idim) const
 
const VectorDouble getAnisoAngles () const
 
const MatrixSquareGeneralgetAnisoRotMat () const
 
const VectorDouble getAnisoRotMatVec () const
 
const MatrixSquareGeneralgetAnisoInvMat () const
 
const VectorDouble getAnisoInvMatVec () const
 
const VectorDouble getAnisoCoeffs () const
 
double getAnisoAngles (int idim) const
 
double getAnisoRotMat (int idim, int jdim) const
 
double getAnisoCoeffs (int idim) const
 
const CovContextgetContext () const
 
const ECov & getType () const
 
double getParam () const
 
double getScadef () const
 
double getParMax () const
 
int getMaxNDim () const
 
int getMinOrder () const
 
bool hasInt1D () const
 
bool hasInt2D () const
 
int hasRange () const
 
int hasParam () const
 
String getCovName () const
 
bool isIsotropic () const
 
bool isAsymptotic () const
 
bool hasRotation () const
 
const TensorgetAniso () const
 
void setAniso (const Tensor &aniso)
 
const ACovFuncgetCova () const
 
int getGradParamNumber () const
 
bool hasCovDerivative () const
 
bool hasCovOnSphere () const
 
bool hasMarkovCoeffs () const
 
bool hasSpectrum () const
 
VectorDouble evalCovOnSphere (const VectorDouble &alpha, int degree) const
 
Array evalCovFFT (const VectorDouble &ext, int N=128, int ivar=0, int jvar=0) const
 
VectorDouble getMarkovCoeffs () const
 
void setMarkovCoeffs (VectorDouble coeffs)
 
void setMarkovCoeffsBySquaredPolynomials (VectorDouble coeffs1, VectorDouble coeffs2, double eps=0)
 
void computeMarkovCoeffs ()
 
double getCorrec () const
 
double getFullCorrec () const
 
int getDimensionNumber () const
 
CovAnisoreduce (const VectorInt &validVars) const
 
- Public Member Functions inherited from ACov
 ACov (const ASpace *space=nullptr)
 
 ACov (const ACov &r)
 
ACovoperator= (const ACov &r)
 
virtual ~ACov ()
 
virtual bool isOptimEnabled () const
 Tell if the use of Optimization is enabled or not. More...
 
void setIsOptimEnabled (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, int ivar=0, int jvar=0, const VectorDouble &center=VectorDouble(), 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 VectorDouble &center=VectorDouble(), const CovCalcMode *mode=nullptr) const
 
MatrixSquareGeneral evalNvarIpas (double step, const VectorDouble &dir, const VectorDouble &center=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 (const Db *db1, const Db *db2=nullptr, int ivar=0, int jvar=0, const VectorInt &nbgh1=VectorInt(), const VectorInt &nbgh2=VectorInt(), 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
 
- 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 ()
 
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...
 
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
 
- Public Member Functions inherited from ICloneable
 ICloneable ()
 
virtual ~ICloneable ()
 
virtual ICloneableclone () const =0
 

Static Public Member Functions

static CovAnisocreateIsotropic (const CovContext &ctxt, const ECov &type, double range, double sill=1., double param=1., bool flagRange=true)
 
static CovAnisocreateAnisotropic (const CovContext &ctxt, const ECov &type, const VectorDouble &ranges, double sill=1., double param=1., const VectorDouble &angles=VectorDouble(), bool flagRange=true)
 
static CovAnisocreateIsotropicMulti (const CovContext &ctxt, const ECov &type, double range, const MatrixSquareSymmetric &sills, double param=1., bool flagRange=true)
 
static CovAnisocreateAnisotropicMulti (const CovContext &ctxt, const ECov &type, const VectorDouble &ranges, const MatrixSquareSymmetric &sills, double param=1., const VectorDouble &angles=VectorDouble(), bool flagRange=true)
 
static double scale2range (const ECov &type, double scale, double param=1.)
 
static double range2scale (const ECov &type, double range, double param=1.)
 

Protected Member Functions

virtual void _updateFromContext ()
 Update internal parameters consistency with the context. More...
 
virtual void _initFromContext ()
 
- Protected Member Functions inherited from ASpaceObject
void setNDim (int ndim)
 Modify the Space dimension of an already created item (To be used only during creation ... in particular when reading NF) More...
 

Private Member Functions

bool _isVariableValid (int ivar) const
 
void _computeCorrec ()
 
double _getDetTensor () const
 
void _optimizationTransformSP (const SpacePoint &ptin, SpacePoint &ptout) const
 
double _calculateCov (double h, const CovCalcMode *mode) const
 

Private Attributes

CovContext _ctxt
 
ACovFunc_cova
 Context (space, number of variables, ...) // TODO : Really store a copy ? More...
 
MatrixSquareSymmetric _sill
 Covariance basic function. More...
 
Tensor _aniso
 Sill matrix (nvar x nvar) More...
 

Additional Inherited Members

- Protected Attributes inherited from ACov
bool _isOptimEnabled
 
std::vector< SpacePoint_p1As
 
SpacePoint _p2A
 
- Protected Attributes inherited from ASpaceObject
const ASpace_space
 Current space context of the object. More...
 

Constructor & Destructor Documentation

◆ CovAniso() [1/4]

CovAniso::CovAniso ( const ECov &  type,
const CovContext ctxt 
)

◆ CovAniso() [2/4]

CovAniso::CovAniso ( const String symbol,
const CovContext ctxt 
)

◆ CovAniso() [3/4]

CovAniso::CovAniso ( const ECov &  type,
double  range,
double  param,
double  sill,
const CovContext ctxt,
bool  flagRange = true 
)

◆ CovAniso() [4/4]

CovAniso::CovAniso ( const CovAniso r)

◆ ~CovAniso()

CovAniso::~CovAniso ( )
virtual

Member Function Documentation

◆ _calculateCov()

double CovAniso::_calculateCov ( double  h,
const CovCalcMode mode 
) const
private

◆ _computeCorrec()

void CovAniso::_computeCorrec ( )
private

◆ _getDetTensor()

double CovAniso::_getDetTensor ( ) const
private

◆ _initFromContext()

void CovAniso::_initFromContext ( )
protectedvirtual

◆ _isVariableValid()

bool CovAniso::_isVariableValid ( int  ivar) const
private

◆ _optimizationTransformSP()

void CovAniso::_optimizationTransformSP ( const SpacePoint ptin,
SpacePoint ptout 
) const
private

Transform a space point using the anisotropy tensor

Parameters
ptinInput Space Point
ptoutOutput Space Point

◆ _updateFromContext()

void CovAniso::_updateFromContext ( )
protectedvirtual

Update internal parameters consistency with the context.

◆ computeMarkovCoeffs()

void CovAniso::computeMarkovCoeffs ( )

◆ copyCovContext()

void CovAniso::copyCovContext ( const CovContext ctxt)

◆ createAnisotropic()

CovAniso * CovAniso::createAnisotropic ( const CovContext ctxt,
const ECov &  type,
const VectorDouble ranges,
double  sill = 1.,
double  param = 1.,
const VectorDouble angles = VectorDouble(),
bool  flagRange = true 
)
static

◆ createAnisotropicMulti()

CovAniso * CovAniso::createAnisotropicMulti ( const CovContext ctxt,
const ECov &  type,
const VectorDouble ranges,
const MatrixSquareSymmetric sills,
double  param = 1.,
const VectorDouble angles = VectorDouble(),
bool  flagRange = true 
)
static

◆ createIsotropic()

CovAniso * CovAniso::createIsotropic ( const CovContext ctxt,
const ECov &  type,
double  range,
double  sill = 1.,
double  param = 1.,
bool  flagRange = true 
)
static

◆ createIsotropicMulti()

CovAniso * CovAniso::createIsotropicMulti ( const CovContext ctxt,
const ECov &  type,
double  range,
const MatrixSquareSymmetric sills,
double  param = 1.,
bool  flagRange = true 
)
static

◆ eval()

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

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

TODO: if composite space : return h1, h2, ... (number of sub-space)

Implements ACov.

Reimplemented in CovGradientNumerical.

◆ eval0()

double CovAniso::eval0 ( int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const
overridevirtual

ACov Interface.

Implements ACov.

Reimplemented in CovGradientNumerical.

◆ eval0MatInPlace()

void CovAniso::eval0MatInPlace ( MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const
overridevirtual

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

Reimplemented from ACov.

◆ evalCovFFT()

Array CovAniso::evalCovFFT ( const VectorDouble ext,
int  N = 128,
int  ivar = 0,
int  jvar = 0 
) const

◆ evalCovOnSphere() [1/2]

VectorDouble CovAniso::evalCovOnSphere ( const VectorDouble alpha,
int  degree 
) const

◆ evalCovOnSphere() [2/2]

double CovAniso::evalCovOnSphere ( double  alpha,
int  degree,
bool  normalize = true 
) const
overridevirtual

Reimplemented from ACov.

◆ evalMatInPlace()

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

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

Reimplemented from ACov.

◆ evalMatOptimInPlace()

void CovAniso::evalMatOptimInPlace ( int  iech1,
int  iech2,
MatrixSquareGeneral mat,
const CovCalcMode mode = nullptr 
) const

◆ evalOptimInPlace()

void CovAniso::evalOptimInPlace ( VectorDouble res,
int  ivar = 0,
int  jvar = 0,
const CovCalcMode mode = nullptr 
) const

Fill the vector of covariances between each valid SpacePoint (recorded in _p1As) and the target (recorded in _p2A)

Parameters
resVector of covariances
ivarRank of the first variable
jvarRank of the second variable
modeCovCalcMode structure

◆ evalSpectrum()

double CovAniso::evalSpectrum ( const VectorDouble freq,
int  ivar = 0,
int  jvar = 0 
) const
overridevirtual

Reimplemented from ACov.

◆ getAniso()

const Tensor& CovAniso::getAniso ( ) const
inline

◆ getAnisoAngles() [1/2]

const VectorDouble CovAniso::getAnisoAngles ( ) const
inline

◆ getAnisoAngles() [2/2]

double CovAniso::getAnisoAngles ( int  idim) const
inline

◆ getAnisoCoeffs() [1/2]

const VectorDouble CovAniso::getAnisoCoeffs ( ) const

◆ getAnisoCoeffs() [2/2]

double CovAniso::getAnisoCoeffs ( int  idim) const
inline

◆ getAnisoInvMat()

const MatrixSquareGeneral& CovAniso::getAnisoInvMat ( ) const
inline

◆ getAnisoInvMatVec()

const VectorDouble CovAniso::getAnisoInvMatVec ( ) const
inline

◆ getAnisoRotation()

const Rotation& CovAniso::getAnisoRotation ( ) const
inline

◆ getAnisoRotMat() [1/2]

const MatrixSquareGeneral& CovAniso::getAnisoRotMat ( ) const
inline

◆ getAnisoRotMat() [2/2]

double CovAniso::getAnisoRotMat ( int  idim,
int  jdim 
) const
inline

◆ getAnisoRotMatVec()

const VectorDouble CovAniso::getAnisoRotMatVec ( ) const
inline

◆ getBallRadius()

virtual double CovAniso::getBallRadius ( ) const
inlinevirtual

Reimplemented in CovGradientNumerical.

◆ getContext()

const CovContext& CovAniso::getContext ( ) const
inline

◆ getCorrec()

double CovAniso::getCorrec ( ) const

◆ getCova()

const ACovFunc* CovAniso::getCova ( ) const
inline

◆ getCovName()

String CovAniso::getCovName ( ) const
inline

◆ getDimensionNumber()

int CovAniso::getDimensionNumber ( ) const
inline

◆ getFlagAniso()

bool CovAniso::getFlagAniso ( ) const
inline

◆ getFlagRotation()

bool CovAniso::getFlagRotation ( ) const
inline

◆ getFormula()

virtual String CovAniso::getFormula ( ) const
inlinevirtual

◆ getFullCorrec()

double CovAniso::getFullCorrec ( ) const

◆ getGradParamNumber()

int CovAniso::getGradParamNumber ( ) const

◆ getIntegralRange()

double CovAniso::getIntegralRange ( int  ndisc,
double  hmax 
) const
virtual

Calculate the Integral Range in various Space Dimension (1, 2 or 3)

Returns

◆ getMarkovCoeffs()

VectorDouble CovAniso::getMarkovCoeffs ( ) const

◆ getMaxNDim()

int CovAniso::getMaxNDim ( ) const
inline

◆ getMinOrder()

int CovAniso::getMinOrder ( ) const
inline

◆ getNVariables()

virtual int CovAniso::getNVariables ( ) const
inlineoverridevirtual

ACov Interface.

Implements ACov.

◆ getParam()

double CovAniso::getParam ( ) const

For compatibility, this function returns 0 if the Covariance has no Third Parameter

Returns
Third parameter

◆ getParMax()

double CovAniso::getParMax ( ) const
inline

◆ getRange() [1/2]

double CovAniso::getRange ( ) const

This function returns the range in the isotropic case In the anisotropic case, it returns the largest range over all directions

Returns

◆ getRange() [2/2]

double CovAniso::getRange ( int  idim) const
inline

◆ getRanges()

VectorDouble CovAniso::getRanges ( ) const

◆ getScadef()

double CovAniso::getScadef ( ) const
inline

◆ getScale() [1/2]

double CovAniso::getScale ( ) const

◆ getScale() [2/2]

double CovAniso::getScale ( int  idim) const
inline

◆ getScales()

const VectorDouble& CovAniso::getScales ( ) const
inline

◆ getSill() [1/2]

const MatrixSquareSymmetric& CovAniso::getSill ( ) const
inline

◆ getSill() [2/2]

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

◆ getSlope()

double CovAniso::getSlope ( int  ivar,
int  jvar 
) const

Return the Slope calculated as the sill / range(idim=0)

Parameters
ivarRank of the first variable
jvarRank of the second variable
Returns

◆ getType()

const ECov& CovAniso::getType ( ) const
inline

◆ hasCovDerivative()

bool CovAniso::hasCovDerivative ( ) const
inline

◆ hasCovOnSphere()

bool CovAniso::hasCovOnSphere ( ) const
inline

◆ hasInt1D()

bool CovAniso::hasInt1D ( ) const
inline

◆ hasInt2D()

bool CovAniso::hasInt2D ( ) const
inline

◆ hasMarkovCoeffs()

bool CovAniso::hasMarkovCoeffs ( ) const
inline

◆ hasParam()

int CovAniso::hasParam ( ) const
inline

◆ hasRange()

int CovAniso::hasRange ( ) const
inline

◆ hasRotation()

bool CovAniso::hasRotation ( ) const
inline

◆ hasSpectrum()

bool CovAniso::hasSpectrum ( ) const
inline

◆ initSill()

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

◆ isAsymptotic()

bool CovAniso::isAsymptotic ( ) const
inline

◆ isConsistent()

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

ASpaceObject Interface.

TODO : check something in CovAniso::isConsistent?

Implements ASpaceObject.

◆ isIsotropic()

bool CovAniso::isIsotropic ( ) const
inline

◆ operator=()

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

◆ optimizationPostProcess()

void CovAniso::optimizationPostProcess ( ) const

◆ optimizationPreProcess()

void CovAniso::optimizationPreProcess ( const std::vector< SpacePoint > &  p1s) const

Functions specific to optimization.

Transform a set of Space Points using the anisotropy tensor The set of resulting Space Points are stored as private member of this.

Parameters
p1sSet of input Space Points

◆ optimizationSetTarget()

void CovAniso::optimizationSetTarget ( const SpacePoint pt) const

◆ range2scale()

double CovAniso::range2scale ( const ECov &  type,
double  range,
double  param = 1. 
)
static

◆ reduce()

CovAniso * CovAniso::reduce ( const VectorInt validVars) const

◆ scale2range()

double CovAniso::scale2range ( const ECov &  type,
double  scale,
double  param = 1. 
)
static

◆ setAniso()

void CovAniso::setAniso ( const Tensor aniso)
inline

◆ setAnisoAngle()

void CovAniso::setAnisoAngle ( int  idim,
double  angle 
)

◆ setAnisoAngles()

void CovAniso::setAnisoAngles ( const VectorDouble angles)

◆ setAnisoRotation() [1/2]

void CovAniso::setAnisoRotation ( const Rotation rot)

◆ setAnisoRotation() [2/2]

void CovAniso::setAnisoRotation ( const VectorDouble rot)

◆ setContext()

void CovAniso::setContext ( const CovContext ctxt)

◆ setMarkovCoeffs()

void CovAniso::setMarkovCoeffs ( VectorDouble  coeffs)

◆ setMarkovCoeffsBySquaredPolynomials()

void CovAniso::setMarkovCoeffsBySquaredPolynomials ( VectorDouble  coeffs1,
VectorDouble  coeffs2,
double  eps = 0 
)

◆ setParam()

void CovAniso::setParam ( double  param)

◆ setRange() [1/2]

void CovAniso::setRange ( double  range)

Practical range.

◆ setRange() [2/2]

void CovAniso::setRange ( int  idim,
double  range 
)

Make the covariance isotropic.

◆ setRanges()

void CovAniso::setRanges ( const VectorDouble ranges)

◆ setScale() [1/2]

void CovAniso::setScale ( double  scale)

◆ setScale() [2/2]

void CovAniso::setScale ( int  idim,
double  scale 
)

Make the covariance isotropic.

◆ setScales()

void CovAniso::setScales ( const VectorDouble scales)

◆ setSill() [1/4]

void CovAniso::setSill ( const MatrixSquareSymmetric sill)

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

◆ setSill() [2/4]

void CovAniso::setSill ( const VectorDouble sill)

◆ setSill() [3/4]

void CovAniso::setSill ( double  sill)

◆ setSill() [4/4]

void CovAniso::setSill ( int  ivar,
int  jvar,
double  sill 
)

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

◆ setType()

void CovAniso::setType ( const ECov &  type)

◆ toString()

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

ICloneable Interface.

AStringable Interface

Reimplemented from ASpaceObject.

Member Data Documentation

◆ _aniso

Tensor CovAniso::_aniso
private

Sill matrix (nvar x nvar)

◆ _cova

ACovFunc* CovAniso::_cova
private

Context (space, number of variables, ...) // TODO : Really store a copy ?

◆ _ctxt

CovContext CovAniso::_ctxt
private

◆ _sill

MatrixSquareSymmetric CovAniso::_sill
private

Covariance basic function.


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