gstlearn  1.0.0
CCC
PPMT Class Reference

#include <PPMT.hpp>

Inheritance diagram for PPMT:
AStringable ICloneable

Public Member Functions

 PPMT (int ndir=50, bool flagPreprocessing=false, const EDirGen &methodDir=EDirGen::fromKey("VDC"), const EGaussInv &methodTrans=EGaussInv::fromKey("EMP"), int nbpoly=30, double alpha=2.)
 
 PPMT (const PPMT &m)
 
PPMToperator= (const PPMT &m)
 
virtual ~PPMT ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 AStringable Interface. More...
 
int getNiter () const
 
double getAlpha () const
 
int getNdir () const
 
int getNdim () const
 
int getNbpoly () const
 
bool isFitted () const
 
const EDirGen & getMethodDir () const
 
const EGaussInv & getMethodTrans () const
 
VectorDouble getSerieAngle () const
 
VectorDouble getSerieScore (bool flagLog=false) const
 
int fit (Db *db, const VectorString &names, bool flagStoreInDb=false, int niter=100, bool verbose=false, const NamingConvention &namconv=NamingConvention("Y"))
 
int fitFromMatrix (AMatrix *X, int niter, bool verbose=false)
 
int rawToGaussian (Db *db, const VectorString &names, int niter=0, const NamingConvention &namconv=NamingConvention("Y"))
 
int gaussianToRaw (Db *db, const VectorString &names, int niter=0, const NamingConvention &namconv=NamingConvention("Z"))
 
- 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 PPMTcreate (int ndir=50, bool flagPreprocessing=false, const EDirGen &methodDir=EDirGen::fromKey("VDC"), const EGaussInv &methodTrans=EGaussInv::fromKey("EMP"), int nbpoly=30, double alpha=2.)
 ICloneable Interface. More...
 

Private Member Functions

void _generateAllDirections ()
 
void _fitInitHermite (AMatrix *Y)
 
void _initGaussianizeForward (AMatrix *Y)
 
void _initGaussianizeBackward (AMatrix *Y)
 
void _iterationFit (AMatrix *Y, const VectorDouble &N0)
 
void _iterationForward (AMatrix *Y, const VectorDouble &N0, int iter=0)
 
void _iterationBackward (AMatrix *Y, const VectorDouble &N0, int iter=0)
 
double _gaussianizeForward (double Yi, int rank, const AnamHermite *anam, const VectorDouble &N0) const
 
double _gaussianizeBackward (double Yi, const AnamHermite *anam) const
 
void _projectOnDirection (const AMatrix *Y, int id, VectorDouble &Y0)
 
double _getGaussianDistance (const VectorDouble &Yi, const VectorInt &Ri, const VectorDouble &N0) const
 
void _shiftForward (AMatrix *Y, int id, const AnamHermite *anam, const VectorDouble &Y0, const VectorInt &R0, const VectorDouble &N0) const
 
void _shiftBackward (AMatrix *Y, int id, const AnamHermite *anam, const VectorDouble &Y0) const
 

Private Attributes

int _niter
 
int _ndir
 
int _nbpoly
 
double _alpha
 
EDirGen _methodDir
 
EGaussInv _methodTrans
 
bool _flagPreprocessing
 
bool _isFitted
 
int _ndim
 
VectorDouble _serieAngle
 
VectorDouble _serieScore
 
MatrixRectangular_dirmat
 
std::vector< AnamHermite * > _anams
 
std::vector< AnamHermite * > _initAnams
 
MatrixRectangular_initSphering
 

Constructor & Destructor Documentation

◆ PPMT() [1/2]

PPMT::PPMT ( int  ndir = 50,
bool  flagPreprocessing = false,
const EDirGen &  methodDir = EDirGen::fromKey("VDC"),
const EGaussInv &  methodTrans = EGaussInv::fromKey("EMP"),
int  nbpoly = 30,
double  alpha = 2. 
)

◆ PPMT() [2/2]

PPMT::PPMT ( const PPMT m)

◆ ~PPMT()

PPMT::~PPMT ( )
virtual

Member Function Documentation

◆ _fitInitHermite()

void PPMT::_fitInitHermite ( AMatrix Y)
private

◆ _gaussianizeBackward()

double PPMT::_gaussianizeBackward ( double  Yi,
const AnamHermite anam 
) const
private

Calculate the Inverse normal score transform. This is only available for Hermite

Parameters
YiInput value
anamAnamorphosis
Returns
The back-anamorphosed value

◆ _gaussianizeForward()

double PPMT::_gaussianizeForward ( double  Yi,
int  rank,
const AnamHermite anam,
const VectorDouble N0 
) const
private

◆ _generateAllDirections()

void PPMT::_generateAllDirections ( )
private

◆ _getGaussianDistance()

double PPMT::_getGaussianDistance ( const VectorDouble Yi,
const VectorInt Ri,
const VectorDouble N0 
) const
private

◆ _initGaussianizeBackward()

void PPMT::_initGaussianizeBackward ( AMatrix Y)
private

◆ _initGaussianizeForward()

void PPMT::_initGaussianizeForward ( AMatrix Y)
private

◆ _iterationBackward()

void PPMT::_iterationBackward ( AMatrix Y,
const VectorDouble N0,
int  iter = 0 
)
private

◆ _iterationFit()

void PPMT::_iterationFit ( AMatrix Y,
const VectorDouble N0 
)
private

◆ _iterationForward()

void PPMT::_iterationForward ( AMatrix Y,
const VectorDouble N0,
int  iter = 0 
)
private

◆ _projectOnDirection()

void PPMT::_projectOnDirection ( const AMatrix Y,
int  id,
VectorDouble Y0 
)
private

Project the data set on the direction rank 'id'

Parameters
YMatrix containing the data set
idRank of the target direction
Y0Vector of projected coordinates

◆ _shiftBackward()

void PPMT::_shiftBackward ( AMatrix Y,
int  id,
const AnamHermite anam,
const VectorDouble Y0 
) const
private

◆ _shiftForward()

void PPMT::_shiftForward ( AMatrix Y,
int  id,
const AnamHermite anam,
const VectorDouble Y0,
const VectorInt R0,
const VectorDouble N0 
) const
private

◆ create()

PPMT * PPMT::create ( int  ndir = 50,
bool  flagPreprocessing = false,
const EDirGen &  methodDir = EDirGen::fromKey("VDC"),
const EGaussInv &  methodTrans = EGaussInv::fromKey("EMP"),
int  nbpoly = 30,
double  alpha = 2. 
)
static

ICloneable Interface.

Create the Multivariate Gaussian anamorphosis

Parameters
ndirNumber of Directions to be tested at each iteration
flagPreprocessingTrue for pre-processing (Normal Score and Sphering)
methodDirMethod for Direction Generation
methodTransMethod for Gaussian Transformation
nbpolyNumber of Polynomial (only used for "hermite" transformation)
alphaDistance exponent
Returns
An instance of PPMT class

◆ fit()

int PPMT::fit ( Db db,
const VectorString names,
bool  flagStoreInDb = false,
int  niter = 100,
bool  verbose = false,
const NamingConvention namconv = NamingConvention("Y") 
)

◆ fitFromMatrix()

int PPMT::fitFromMatrix ( AMatrix X,
int  niter,
bool  verbose = false 
)

◆ gaussianToRaw()

int PPMT::gaussianToRaw ( Db db,
const VectorString names,
int  niter = 0,
const NamingConvention namconv = NamingConvention("Z") 
)

◆ getAlpha()

double PPMT::getAlpha ( ) const
inline

◆ getMethodDir()

const EDirGen& PPMT::getMethodDir ( ) const
inline

◆ getMethodTrans()

const EGaussInv& PPMT::getMethodTrans ( ) const
inline

◆ getNbpoly()

int PPMT::getNbpoly ( ) const
inline

◆ getNdim()

int PPMT::getNdim ( ) const
inline

◆ getNdir()

int PPMT::getNdir ( ) const
inline

◆ getNiter()

int PPMT::getNiter ( ) const
inline

◆ getSerieAngle()

VectorDouble PPMT::getSerieAngle ( ) const
inline

◆ getSerieScore()

VectorDouble PPMT::getSerieScore ( bool  flagLog = false) const

◆ isFitted()

bool PPMT::isFitted ( ) const
inline

◆ operator=()

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

◆ rawToGaussian()

int PPMT::rawToGaussian ( Db db,
const VectorString names,
int  niter = 0,
const NamingConvention namconv = NamingConvention("Y") 
)

◆ toString()

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

AStringable Interface.

Reimplemented from AStringable.

Member Data Documentation

◆ _alpha

double PPMT::_alpha
private

◆ _anams

std::vector<AnamHermite*> PPMT::_anams
mutableprivate

◆ _dirmat

MatrixRectangular* PPMT::_dirmat
mutableprivate

◆ _flagPreprocessing

bool PPMT::_flagPreprocessing
private

◆ _initAnams

std::vector<AnamHermite*> PPMT::_initAnams
mutableprivate

◆ _initSphering

MatrixRectangular* PPMT::_initSphering
mutableprivate

◆ _isFitted

bool PPMT::_isFitted
private

◆ _methodDir

EDirGen PPMT::_methodDir
private

◆ _methodTrans

EGaussInv PPMT::_methodTrans
private

◆ _nbpoly

int PPMT::_nbpoly
private

◆ _ndim

int PPMT::_ndim
mutableprivate

◆ _ndir

int PPMT::_ndir
private

◆ _niter

int PPMT::_niter
private

◆ _serieAngle

VectorDouble PPMT::_serieAngle
mutableprivate

◆ _serieScore

VectorDouble PPMT::_serieScore
mutableprivate

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