gstlearn  1.0.0
CCC
AGibbs Class Referenceabstract

#include <AGibbs.hpp>

Inheritance diagram for AGibbs:
AStringable GibbsMulti GibbsMultiMono GibbsMMulti GibbsUMulti GibbsUMultiMono GibbsUPropMono

Public Member Functions

 AGibbs ()
 
 AGibbs (Db *db)
 
 AGibbs (Db *db, int npgs, int nvar, int nburn, int niter, int seed, int flag_order, bool flag_decay)
 
 AGibbs (const AGibbs &r)
 
AGibbsoperator= (const AGibbs &r)
 
virtual ~AGibbs ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 
virtual int calculInitialize (VectorVectorDouble &y, int isimu, int ipgs)=0
 
virtual void update (VectorVectorDouble &y, int isimu, int ipgs, int iter)=0
 
virtual int covmatAlloc (bool verbose, bool verboseTimer=false)=0
 
virtual double getSimulate (VectorVectorDouble &y, double yk, double sk, int ipgs, int ivar, int iact, int iter)=0
 
virtual int checkGibbs (const VectorVectorDouble &y, int isimu, int ipgs)=0
 
virtual int run (VectorVectorDouble &y, int ipgs=0, int isimu=0, bool verbose=false, bool flagCheck=false)
 
virtual void cleanup ()
 
void init (int npgs, int nvar, int nburn, int niter, int seed=3241, int flag_order=0, bool flag_decay=true)
 
void getBoundsDecay (int iter, double *vmin, double *vmax) const
 
int getNvar () const
 
void setNvar (int nvar)
 
int getNpgs () const
 
void setNpgs (int npgs)
 
int getNburn () const
 
void setNburn (int nburn)
 
int getNiter () const
 
void setNiter (int niter)
 
int getFlagOrder () const
 
void setFlagOrder (int flagOrder)
 
bool getOptionStats () const
 
void setOptionStats (int option_stats)
 
DbgetDb () const
 
int getDimension () const
 
int getRank (int ipgs, int ivar) const
 
VectorVectorDouble allocY () const
 
void storeResult (const VectorVectorDouble &y, int isimu, int ipgs)
 
int getSampleNumber () const
 
int getSampleRankNumber () const
 
int getSampleRank (int i) const
 
VectorInt calculateSampleRanks () const
 
void updateStats (const VectorVectorDouble &y, int ipgs, int iter, double amort=0.9)
 
bool isConstraintTight (int ipgs, int ivar, int iact, double *value) const
 
void statsInit ()
 
bool getFlagDecay () const
 
int getRelativeRank (int iech)
 
- 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
 

Protected Member Functions

int _boundsCheck (int ipgs, int ivar, int iact, double *vmin, double *vmax)
 
void _printInequalities (int iact, int ivar, double simval, double vmin, double vmax) const
 
int _getRowNumberStats () const
 
int _getColNumberStats () const
 
int _getColRankStats (int ipgs, int ivar, int mode) const
 
void _displayCurrentVector (bool flag_init, const VectorVectorDouble &y, int isimu, int ipgs) const
 
const int * _getRanks () const
 

Private Attributes

int _npgs
 
int _nvar
 
int _nburn
 
int _niter
 
int _flagOrder
 
bool _flagDecay
 
int _optionStats
 
VectorInt _ranks
 
Db_db
 
Table _stats
 

Constructor & Destructor Documentation

◆ AGibbs() [1/4]

AGibbs::AGibbs ( )

◆ AGibbs() [2/4]

AGibbs::AGibbs ( Db db)

◆ AGibbs() [3/4]

AGibbs::AGibbs ( Db db,
int  npgs,
int  nvar,
int  nburn,
int  niter,
int  seed,
int  flag_order,
bool  flag_decay 
)

◆ AGibbs() [4/4]

AGibbs::AGibbs ( const AGibbs r)

◆ ~AGibbs()

AGibbs::~AGibbs ( )
virtual

Member Function Documentation

◆ _boundsCheck()

int AGibbs::_boundsCheck ( int  ipgs,
int  ivar,
int  iact,
double *  vmin_arg,
double *  vmax_arg 
)
protected

Correct the bounds according to the order relationship

Returns
Error code: 1 if there is no solution; 0 otherwise
Parameters
[in]ipgsRank of the GS
[in]ivarRank of the variable
[in]iactInternal Rank of the sample
[out]vmin_argOutput minimum bound
[out]vmax_argOutput maximum bound
Remarks
Attributes ELoc::GAUSFAC are mandatory

◆ _displayCurrentVector()

void AGibbs::_displayCurrentVector ( bool  flag_init,
const VectorVectorDouble y,
int  isimu,
int  ipgs 
) const
protected

Print the initial status for Gibbs iterations

Parameters
[in]flag_initTRUE for the Initial printout
[in]yGaussian vector
[in]isimuRank of the simulation
[in]ipgsRank of the GS

◆ _getColNumberStats()

int AGibbs::_getColNumberStats ( ) const
protected

Returns the number of Columns for storing the statistics This number is based on:

  • the number of GS
  • the number of variables (or GRF)
  • the storage of mean and standard deviation
    Returns

◆ _getColRankStats()

int AGibbs::_getColRankStats ( int  ipgs,
int  ivar,
int  mode 
) const
protected

Return the column for the storage of a value in Statistics

Parameters
ipgsRank of the GS
ivarRank of the Variable or GRF
mode0 for Mean and 1 for Standard Deviation
Returns

◆ _getRanks()

const int* AGibbs::_getRanks ( ) const
inlineprotected

◆ _getRowNumberStats()

int AGibbs::_getRowNumberStats ( ) const
protected

Returns the number of Rows for storing the statistics This number is based on the number of iterations, exclusing the burnout

Returns

◆ _printInequalities()

void AGibbs::_printInequalities ( int  iact,
int  ivar,
double  simval,
double  vmin,
double  vmax 
) const
protected

Print the inequality

Parameters
[in]iactRelative rank of the sample
[in]ivarRank of the variable
[in]simvalSimulated value
[in]vminLower threshold
[in]vmaxUpper threshold

◆ allocY()

VectorVectorDouble AGibbs::allocY ( ) const

◆ calculateSampleRanks()

VectorInt AGibbs::calculateSampleRanks ( ) const

◆ calculInitialize()

virtual int AGibbs::calculInitialize ( VectorVectorDouble y,
int  isimu,
int  ipgs 
)
pure virtual

Implemented in GibbsMultiMono, and GibbsMulti.

◆ checkGibbs()

virtual int AGibbs::checkGibbs ( const VectorVectorDouble y,
int  isimu,
int  ipgs 
)
pure virtual

Implemented in GibbsMultiMono, and GibbsMulti.

◆ cleanup()

virtual void AGibbs::cleanup ( )
inlinevirtual

Reimplemented in GibbsMMulti.

◆ covmatAlloc()

virtual int AGibbs::covmatAlloc ( bool  verbose,
bool  verboseTimer = false 
)
pure virtual

◆ getBoundsDecay()

void AGibbs::getBoundsDecay ( int  iter,
double *  vmin,
double *  vmax 
) const

Given the initial bounds, calculate the modified bounds during the Burning stage

Parameters
iterRank of the iteration
vminLower bound (in/out)
vmaxUpper bound (in/out)

◆ getDb()

Db* AGibbs::getDb ( ) const
inline

◆ getDimension()

int AGibbs::getDimension ( ) const

◆ getFlagDecay()

bool AGibbs::getFlagDecay ( ) const
inline

◆ getFlagOrder()

int AGibbs::getFlagOrder ( ) const
inline

◆ getNburn()

int AGibbs::getNburn ( ) const
inline

◆ getNiter()

int AGibbs::getNiter ( ) const
inline

◆ getNpgs()

int AGibbs::getNpgs ( ) const
inline

◆ getNvar()

int AGibbs::getNvar ( ) const
inline

◆ getOptionStats()

bool AGibbs::getOptionStats ( ) const
inline

◆ getRank()

int AGibbs::getRank ( int  ipgs,
int  ivar 
) const

◆ getRelativeRank()

int AGibbs::getRelativeRank ( int  iech)

Find the relative rank of an absolute sample rank

Parameters
iechAbsolute sample rank
Returns
The rank within the vector if relative ranks (or -1)

◆ getSampleNumber()

int AGibbs::getSampleNumber ( ) const

◆ getSampleRank()

int AGibbs::getSampleRank ( int  i) const

◆ getSampleRankNumber()

int AGibbs::getSampleRankNumber ( ) const

◆ getSimulate()

virtual double AGibbs::getSimulate ( VectorVectorDouble y,
double  yk,
double  sk,
int  ipgs,
int  ivar,
int  iact,
int  iter 
)
pure virtual

Implemented in GibbsMultiMono, and GibbsMulti.

◆ init()

void AGibbs::init ( int  npgs,
int  nvar,
int  nburn,
int  niter,
int  seed = 3241,
int  flag_order = 0,
bool  flag_decay = true 
)

◆ isConstraintTight()

bool AGibbs::isConstraintTight ( int  ipgs,
int  ivar,
int  iact,
double *  value 
) const

Test wheter a constraint is tight at a sample (data is a hard data)

Parameters
ipgsRank of the GS
ivarRank of the variable
iactRank of the sample (within internal _ranks)
valueConstraining value (if sample is an active constraint)
Returns

◆ operator=()

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

◆ run()

int AGibbs::run ( VectorVectorDouble y,
int  ipgs = 0,
int  isimu = 0,
bool  verbose = false,
bool  flagCheck = false 
)
virtual

◆ setFlagOrder()

void AGibbs::setFlagOrder ( int  flagOrder)
inline

◆ setNburn()

void AGibbs::setNburn ( int  nburn)
inline

◆ setNiter()

void AGibbs::setNiter ( int  niter)
inline

◆ setNpgs()

void AGibbs::setNpgs ( int  npgs)
inline

◆ setNvar()

void AGibbs::setNvar ( int  nvar)
inline

◆ setOptionStats()

void AGibbs::setOptionStats ( int  option_stats)
inline

◆ statsInit()

void AGibbs::statsInit ( )

◆ storeResult()

void AGibbs::storeResult ( const VectorVectorDouble y,
int  isimu,
int  ipgs 
)

Store the Gaussian array in ELoc::GAUS variable. This should be performed once for all GS and all variables

Parameters
yThe Gaussian vector to be stored
isimuRank of the simulation
ipgsRank of the GS

◆ toString()

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

Reimplemented from AStringable.

◆ update()

virtual void AGibbs::update ( VectorVectorDouble y,
int  isimu,
int  ipgs,
int  iter 
)
pure virtual

◆ updateStats()

void AGibbs::updateStats ( const VectorVectorDouble y,
int  ipgs,
int  iter,
double  amort = 0.9 
)

Member Data Documentation

◆ _db

Db* AGibbs::_db
private

◆ _flagDecay

bool AGibbs::_flagDecay
private

◆ _flagOrder

int AGibbs::_flagOrder
private

◆ _nburn

int AGibbs::_nburn
private

◆ _niter

int AGibbs::_niter
private

◆ _npgs

int AGibbs::_npgs
private

◆ _nvar

int AGibbs::_nvar
private

◆ _optionStats

int AGibbs::_optionStats
private

◆ _ranks

VectorInt AGibbs::_ranks
private

◆ _stats

Table AGibbs::_stats
private

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