1.11.1
CCC
 
Loading...
Searching...
No Matches
gstlrn::Table Class Reference

#include <Table.hpp>

Inheritance diagram for gstlrn::Table:
gstlrn::MatrixDense gstlrn::ASerializable gstlrn::AMatrix gstlrn::AStringable gstlrn::ICloneable

Detailed Description

Stores an array of values as a Table, i.e. a MatrixDense where rows and columns can be optionally decorated

Public Member Functions

 Table (Id nrow=0, Id ncol=0, bool skip_title=false, bool skip_description=false)
 
 Table (const Table &m)
 
Tableoperator= (const Table &m)
 
virtual ~Table ()
 
DECLARE_TOLATEX String getNFName () const override
 Cloneable interface.
 
void reset (Id nrows, Id ncols) override
 
String toString (const AStringFormat *strfmt=nullptr) const override
 
 getRange (Id icol) const
 
 getAllRange () const
 
void plot (Id isimu) const
 
void setColumnNames (const VectorString &colNames)
 
void setColumnName (Id icol, const String &name)
 
void setRowNames (const VectorString &rowNames)
 
void setRowName (Id irow, const String &name)
 
VectorString getColumnNames () const
 
VectorString getRowNames () const
 
String getColumnName (Id icol) const
 
String getRowName (Id irow) const
 
const StringgetTitle () const
 
void setTitle (const String &title)
 
void setSkipDescription (bool skipDescription)
 
void setSkipTitle (bool skipTitle)
 
- Public Member Functions inherited from gstlrn::MatrixDense
 MatrixDense (Id nrow=0, Id ncol=0)
 
 MatrixDense (const MatrixDense &r)
 
 MatrixDense (const AMatrix &r)
 
MatrixDenseoperator= (const MatrixDense &r)
 
virtual ~MatrixDense ()
 
DECLARE_TOLATEX EIGEN_MAKE_ALIGNED_OPERATOR_NEW bool isDense () const override
 Cloneable interface.
 
bool isSparse () const override
 
double getValue (Id irow, Id icol) const override
 
void setValue (Id irow, Id icol, double value) override
 
void updValue (Id irow, Id icol, const EOperator &oper, double value) override
 
 getColumn (Id icol) const override
 
void setColumn (Id icol, const 1 &tab) override
 
void setColumnToConstant (Id icol, double value) override
 
 getRow (Id irow) const override
 
void setRow (Id irow, const 1 &tab) override
 
void setRowToConstant (Id irow, double value) override
 
void setDiagonal (const 1 &tab) override
 
void setDiagonalToConstant (double value=1.) override
 
void multiplyRow (const 1 &vec) override
 
void multiplyColumn (const 1 &vec) override
 
void divideRow (const 1 &vec) override
 
void divideColumn (const 1 &vec) override
 
void fill (double value) override
 
bool mustBeSymmetric () const override
 
void prodMatMatInPlace (const AMatrix *x, const AMatrix *y, bool transposeX=false, bool transposeY=false) override
 
MatrixDenseaddCst (double a)
 
MatrixDenseprodCst (double a)
 
template<bool transposeX, bool transposeY>
void prodMatMatNoCheck (const MatrixDense &x, const MatrixDense &y)
 
void prodNormMatMatInPlace (const AMatrix *a, const AMatrix *m, bool transpose=false) override
 
void prodNormMatVecInPlace (const AMatrix *a, const 1 &vec, bool transpose=false) override
 
void prodNormMatInPlace (const AMatrix *a, bool transpose=false) override
 
void addMatNoCheck (const MatrixDense &y, const double cx=1., const double cy=1.)
 
Id invert2 (MatrixDense &res) const
 
void unsample (const AMatrix *A, const 1 &rowFetch, const 1 &colFetch, bool flagInvertRow=false, bool flagInvertCol=false)
 Set the values contained in 'A' into the current matrix.
 
MatrixDense compressMatLC (const MatrixDense &matLC, bool transpose=false)
 Perform the compressing product, according to 'transpose'.
 
void addRow (Id nrow_added=1)
 
void addColumn (Id ncolumn_added=1)
 
double sum () const
 
constvect getViewOnColumn (Id icol) const
 
vect getViewOnColumnModify (Id icol)
 
MatrixDenseoperator+= (double a)
 
MatrixDenseoperator-= (double a)
 
MatrixDense operator+ (double a) const
 
MatrixDense operator- (double a) const
 
MatrixDenseoperator*= (double a)
 
MatrixDense operator* (double a) const
 
MatrixDenseoperator/= (double a)
 
MatrixDense operator/ (double a) const
 
Eigen::Map< const Eigen::MatrixXd, Eigen::Unaligned > eigenMat () const
 
Eigen::Map< Eigen::MatrixXd, Eigen::Unaligned > eigenMat ()
 
- Public Member Functions inherited from gstlrn::AMatrix
 AMatrix (Id nrow=0, Id ncol=0)
 
 AMatrix (const AMatrix &m)
 
AMatrixoperator= (const AMatrix &m)
 
 AMatrix (AMatrix &&m)=default
 
AMatrixoperator= (AMatrix &&m)=default
 
virtual ~AMatrix ()
 
virtual bool isSquare (bool printWhyNot=false) const
 
virtual bool isSymmetric (double eps=EPSILON10, bool printWhyNot=false) const
 
virtual void resetFromValue (Id nrows, Id ncols, double value)
 Reset the matrix to new dimensions and fill with a new value.
 
virtual void resetFromArray (Id nrows, Id ncols, const double *tab, bool byCol=true)
 Reset the matrix from an array of double values.
 
virtual void resetFromVD (Id nrows, Id ncols, const 1 &tab, bool byCol=true)
 Reset the matrix from a vector of double values.
 
virtual void resetFromVVD (const 1 &tab, bool byCol=true)
 Reset the matrix from an array of double values.
 
virtual void transposeInPlace ()
 
virtual AMatrixtranspose () const
 
double prodVecMatVec (const 1 &x, const 1 &y) const
 
virtual NF_Triplet getMatrixToTriplet (Id shiftRow=0, Id shiftCol=0) const
 
void clear ()
 
void resize (Id nrows, Id ncols)
 Resize the matrix to new dimensions (this method doesn't change the storage type)
 
bool isValid (Id irow, Id icol, bool printWhyNot=false) const
 
bool isIdentity (bool printWhyNot=false) const
 
void addValue (Id irow, Id icol, double value)
 
bool isSame (const AMatrix &m, double eps=EPSILON4, bool printWhyNot=false)
 
bool isSameSize (const AMatrix &m) const
 
bool empty () const
 
double compare (const AMatrix &mat) const
 
Id getNRows () const
 
Id getNCols () const
 
Id size () const
 
 getValues (bool byCol=true) const
 
const & getDiagonal (Id shift=0) const
 
bool isColumnDefined (Id icol) const
 
bool isRowDefined (Id irow) const
 
Id getNColDefined () const
 
Id getNRowDefined () const
 
 getColumnByRowRange (Id icol, Id rowFrom, Id rowTo) const
 
bool isNonNegative (bool verbose=false) const
 
Id invert ()
 
Id solve (const 1 &b, 1 &x) const
 
void dumpElements (const String &title, Id ifrom, Id ito) const
 
void dumpStatistics (const String &title) const
 
void setIdentity (double value=1.)
 
virtual void fillRandom (double zeroPercent=0, Id seed=432432)
 
void setValues (const 1 &values, bool byCol=true)
 
double getMeanByColumn (Id icol) const
 
double getMinimum () const
 
double getMaximum () const
 
double getNormInf () const
 
void copyReduce (const AMatrix *x, const 1 &validRows, const 1 &validCols)
 
void copyElements (const AMatrix &m, double factor=1.)
 
void makePositiveColumn ()
 
void dumpRange (const char *title)
 
double operator() (Id row, Id col) const
 
double & operator() (Id row, Id col)
 
- Public Member Functions inherited from gstlrn::AStringable
 AStringable ()
 
 AStringable (const AStringable &r)
 
AStringableoperator= (const AStringable &r)
 
virtual ~AStringable ()
 
virtual void display (const AStringFormat *strfmt=nullptr) const final
 
virtual void display (Id level) const final
 
void printConcreteClassName () const
 
- Public Member Functions inherited from gstlrn::ICloneable
 ICloneable ()
 
virtual ~ICloneable ()
 
virtual ICloneableclone () const =0
 
std::shared_ptr< ICloneablecloneShared () const
 
std::unique_ptr< ICloneablecloneUnique () const
 
- Public Member Functions inherited from gstlrn::ASerializable
 ASerializable ()
 
 ASerializable (const ASerializable &r)=default
 
ASerializableoperator= (const ASerializable &r)=default
 
 ASerializable (ASerializable &&r) noexcept=default
 
ASerializableoperator= (ASerializable &&r) noexcept=default
 
virtual ~ASerializable ()=default
 
bool dumpToNF (const String &NFFilename, const EFormatNF &format=EFormatNF::fromKey("DEFAULT")) const
 Dump the contents of an object into an Output File using a given Output NF Format.
 
void setDefaultFormatNF (const EFormatNF &format)
 

Static Public Member Functions

static Tablecreate (Id nrow=0, Id ncol=0)
 
static TablecreateFromNames (const VectorString &rownames, const VectorString &colnames)
 
static TablecreateFromNF (const String &NFFilename, bool verbose=true)
 
static TablecreateFromTable (const Table &table)
 
static TablecreateFillRandom (Id nrow, Id ncol, const VectorString &rownames=VectorString(), const VectorString &colnames=VectorString())
 
- Static Public Member Functions inherited from gstlrn::MatrixDense
static void _addGeneral (MatrixDense &res, const MatrixDense &other, double cst)
 
static void _addGeneral (MatrixDense &res, const MatrixDense &other1, const MatrixDense &other2)
 Add matrices 'other1' and 'other2' and store the result in 'res' This code is alais-safe, as it does not modify 'other1' and 'other2' and only writes to 'res'.
 
static void _prodGeneral (MatrixDense &res, const MatrixDense &other, double cst)
 
static void _prodGeneral (MatrixDense &res, const MatrixDense &other1, const MatrixDense &other2)
 Make the elementwise product of matrices 'other1' and 'other2' and store the result in 'res' This code is alais-safe, as it does not modify 'other1' and 'other2' and only writes to 'res'.
 
static void _productGeneral (MatrixDense &res, const MatrixDense &other1, const MatrixDense &other2, bool transpose1=false, bool transpose2=false)
 
static void _prodVecAddGeneral (1 &res, const MatrixDense &other, const 1 &vec, bool transpose=false, bool flagInvert=false)
 Add the Product of a matrix by a vector.
 
static void _prodVecAddGeneral (vect &res, const MatrixDense &other, const constvect &vec, bool transpose=false, bool flagInvert=false)
 Add the Product of a matrix by a vector.
 
static void _prodnormGeneral (MatrixDense &res, const MatrixDense &a, const MatrixDense &m=MatrixDense(), bool transpose=false)
 
static void _prodnormGeneral (MatrixDense &res, const MatrixDense &a, const 1 &vec, bool transpose=false)
 
static bool _areIdenticalGeneral (const MatrixDense &a, const MatrixDense &b, bool verbose=false)
 
static MatrixDensecreate (const MatrixDense *mat)
 
static MatrixDensecreate (Id nrow, Id ncol)
 
static double traceProd (const MatrixDense &a, MatrixDense &b)
 
static MatrixDensecreateFromVVD (const 1 &X)
 
static MatrixDensecreateFromVD (const 1 &X, Id nrow, Id ncol, bool byCol=false, bool invertColumnOrder=false)
 
static MatrixDensecreateFillRandom (Id nrow, Id ncol, Id seed=13242)
 
static MatrixDenseglue (const AMatrix *A1, const AMatrix *A2, bool flagShiftRow, bool flagShiftCol)
 
static bool sample (MatrixDense &res, const AMatrix &A, const 1 &rowKeep=1(), const 1 &colKeep=1(), bool flagInvertRow=false, bool flagInvertCol=false)
 Create an output Rectangular Matrix by selecting some rows and columns of the Input matrix 'A'.
 
static void sum (const MatrixDense *mat1, const MatrixDense *mat2, MatrixDense *mat3)
 
- Static Public Member Functions inherited from gstlrn::AMatrix
template<class MA , class MB , class MC >
static void prodMatMatInPlace (MA &A, const MB &B, const MC &C, bool transposeB=false, bool transposeC=false)
 
template<typename T >
static T add (const T &other, double cst)
 Return 'other' + 'cst'.
 
template<typename T >
static void addInPlace (T &res, const T &other, double cst)
 Operate 'res' = 'other' + 'cst'.
 
template<typename T >
static T add (const T &other1, const T &other2)
 Return 'other1' + 'other2'.
 
template<typename T >
static void addInPlace (T &res, const T &other1, const T &other2)
 Operate: 'res' = 'other1' + 'other2'.
 
template<typename T >
static T product (const T &other, double cst)
 Return 'other' * 'cst'.
 
template<typename T >
static void productInPlace (T &res, const T &other, double cst)
 Operate: 'res' = 'other' * 'cst'.
 
template<typename T >
static T prodHadamard (const T &other1, const T &other2)
 Return: 'other1' * 'other2' (where '*' designates the element-wise product)
 
template<typename T >
static void prodHadamardInPlace (T &res, const T &other1, const T &other2)
 Operate: 'res' = 'other1' * 'other2' (where '*' designates the element-wise prodtc)
 
template<typename T >
static T linearCombination (double addition, double val1, const T &other1, double val2=0., const T &other2=T(), double val3=0., const T &other3=T())
 Return: 'val1' * 'other1' + 'val2' * 'other2' + 'val3' * 'other3' + 'addition'.
 
template<typename T >
static void linearCombinationInPlace (T &res, double addition, double val1, const T &other1, double val2=0., const T &other2=T(), double val3=0., const T &other3=T())
 Operate: 'res' = 'val1' * 'other1' + 'val2' * 'other2' + 'val3' * 'other3' + 'addition'.
 
template<typename T >
static T product (const T &other1, const T &other2, bool transpose1=false, bool transpose2=false)
 Return: 'other1' * 'other2'.
 
template<typename T >
static void productInPlace (T &res, const T &other1, const T &other2, bool transpose1=false, bool transpose2=false)
 Operate: 'res' = 'other1' * 'other2'.
 
template<typename T >
static void productInPlace (T &res, const T &other2, bool transpose2=false)
 Operate: 'res' = 'res' * 'other1'.
 
template<typename T >
static product (const T &other, const 1 &vec, bool transpose=false, bool flagInit=true)
 Return: 'other' * 'vec'.
 
template<typename T >
static void productInPlace (1 &res, const T &other, const 1 &vec, bool transpose=false, bool flagInit=true)
 Operate: 'res' = 'other' * 'vec'.
 
template<typename T >
static void productInPlace (vect res, const T &other, const constvect vec, bool transpose=false, bool flagInit=true)
 Operate: 'res' = 'other' * 'vec'.
 
template<typename T >
static product (const 1 &vec, const T &other, bool transpose=false, bool flagInit=true)
 Return: 'vec' * 'other'.
 
template<typename T >
static void productInPlace (1 &res, const 1 &vec, const T &other, bool transpose=false, bool flagInit=true)
 Operate: 'res' = 'vec' * 'other'.
 
template<typename T >
static void productInPlace (vect res, const constvect vec, const T &other, bool transpose=false, bool flagInit=true)
 Operate: 'res' = 'vec' * 'other'.
 
template<typename T >
static T prodnorm (const T &a, const T &m=T(), bool transpose=false)
 Return: 'a_t' * 'm' * 'a' or 'a' * 'm' * 'a_t' (where 'a_t' is the transpose of 'a')
 
template<typename T >
static void prodnormInPlace (T &res, const T &a, const T &m=T(), bool transpose=false)
 Operate: 'res' = 'a_t' * 'm' * 'a' or 'a' * 'm' * 'a_t' (where 'a_t' is the transpose of 'a')
 
template<typename T >
static T prodnorm (const T &a, const 1 &vec, bool transpose=false)
 Return: 'a_t' * 'vec' * 'a' or 'a' * 'vec' * 'a_t' (where 'a_t' is the transpose of 'a')
 
template<typename T >
static void prodnormInPlace (T &res, const T &a, const 1 &vec, bool transpose=false)
 Operate: 'res' = 'a_t' * 'vec' * 'a' or 'a' * 'vec' * 'a_t' (where 'a_t' is the transpose of 'a')
 
template<typename T >
static bool areIdentical (const T &a, const T &b, bool verbose=false)
 Check if two matrices are exactly identical.
 
- Static Public Member Functions inherited from gstlrn::ASerializable
static String buildFileName (Id status, const String &filename, bool ensureDirExist=false)
 
static String getFileIdentity (const String &filename, bool verbose=false)
 
static void setPrefixName (const String &prefixName)
 
static void unsetPrefixName ()
 
static const StringgetPrefixName ()
 

Public Attributes

 DECLARE_TOTL
 Has a specific implementation in the Target language.
 
- Public Attributes inherited from gstlrn::MatrixDense
 DECLARE_TOTL
 Has a specific implementation in the Target language.
 

Constructor & Destructor Documentation

◆ Table() [1/2]

gstlrn::Table::Table ( Id  nrow = 0,
Id  ncol = 0,
bool  skip_title = false,
bool  skip_description = false 
)

◆ Table() [2/2]

gstlrn::Table::Table ( const Table m)

◆ ~Table()

gstlrn::Table::~Table ( )
virtual

Member Function Documentation

◆ create()

Table * gstlrn::Table::create ( Id  nrow = 0,
Id  ncol = 0 
)
static

◆ createFillRandom()

Table * gstlrn::Table::createFillRandom ( Id  nrow,
Id  ncol,
const VectorString rownames = VectorString(),
const VectorString colnames = VectorString() 
)
static

◆ createFromNames()

Table * gstlrn::Table::createFromNames ( const VectorString rownames,
const VectorString colnames 
)
static

◆ createFromNF()

Table * gstlrn::Table::createFromNF ( const String NFFilename,
bool  verbose = true 
)
static

◆ createFromTable()

Table * gstlrn::Table::createFromTable ( const Table table)
static

◆ getAllRange()

gstlrn::Table::getAllRange ( ) const

◆ getColumnName()

String gstlrn::Table::getColumnName ( Id  icol) const

◆ getColumnNames()

VectorString gstlrn::Table::getColumnNames ( ) const
inline

◆ getNFName()

DECLARE_TOLATEX String gstlrn::Table::getNFName ( ) const
inlineoverridevirtual

Cloneable interface.

ASerializable Interface

Implements gstlrn::ASerializable.

◆ getRange()

gstlrn::Table::getRange ( Id  icol) const

◆ getRowName()

String gstlrn::Table::getRowName ( Id  irow) const

◆ getRowNames()

VectorString gstlrn::Table::getRowNames ( ) const
inline

◆ getTitle()

const String & gstlrn::Table::getTitle ( ) const
inline

◆ operator=()

Table & gstlrn::Table::operator= ( const Table m)

◆ plot()

void gstlrn::Table::plot ( Id  isimu) const

Plot the contents of the statistics

◆ reset()

void gstlrn::Table::reset ( Id  nrows,
Id  ncols 
)
overridevirtual

Reimplemented from gstlrn::AMatrix.

◆ setColumnName()

void gstlrn::Table::setColumnName ( Id  icol,
const String name 
)

◆ setColumnNames()

void gstlrn::Table::setColumnNames ( const VectorString colNames)

◆ setRowName()

void gstlrn::Table::setRowName ( Id  irow,
const String name 
)

◆ setRowNames()

void gstlrn::Table::setRowNames ( const VectorString rowNames)

◆ setSkipDescription()

void gstlrn::Table::setSkipDescription ( bool  skipDescription)
inline

◆ setSkipTitle()

void gstlrn::Table::setSkipTitle ( bool  skipTitle)
inline

◆ setTitle()

void gstlrn::Table::setTitle ( const String title)
inline

◆ toString()

String gstlrn::Table::toString ( const AStringFormat strfmt = nullptr) const
overridevirtual

Print the contents of the statistics

Reimplemented from gstlrn::AMatrix.

Member Data Documentation

◆ DECLARE_TOTL

gstlrn::Table::DECLARE_TOTL

Has a specific implementation in the Target language.


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