gstlearn  0.3.3
CCC
MatrixSquareDiagonalCst Class Reference

#include <MatrixSquareDiagonalCst.hpp>

Inheritance diagram for MatrixSquareDiagonalCst:
MatrixSquareDiagonal MatrixSquareSymmetric AMatrixSquare AMatrix AStringable ICloneable

Public Member Functions

 MatrixSquareDiagonalCst (int nrow=0)
 
 MatrixSquareDiagonalCst (const MatrixSquareDiagonalCst &m)
 
MatrixSquareDiagonalCstoperator= (const MatrixSquareDiagonalCst &r)
 
virtual ~MatrixSquareDiagonalCst ()
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 ICloneable interface. More...
 
bool mustBeDiagCst () const override
 
void transposeInPlace () override
 
void addScalar (double v) override
 
void addScalarDiag (double v) override
 
bool isValid (int irow, int icol, bool printWhyNot=false) const override
 
void setColumn (int icol, const VectorDouble &tab) override
 
void setRow (int irow, const VectorDouble &tab) override
 
void setDiagonal (const VectorDouble &tab) override
 
double determinant () const override
 
- Public Member Functions inherited from MatrixSquareDiagonal
 MatrixSquareDiagonal (int nrow=0)
 
 MatrixSquareDiagonal (const MatrixSquareDiagonal &m)
 
MatrixSquareDiagonaloperator= (const MatrixSquareDiagonal &r)
 
virtual ~MatrixSquareDiagonal ()
 
bool isDiagonal (bool printWhyNot=false) const final
 
- Public Member Functions inherited from MatrixSquareSymmetric
 MatrixSquareSymmetric (int nrow=0)
 
 MatrixSquareSymmetric (const MatrixSquareSymmetric &m)
 
 MatrixSquareSymmetric (const AMatrix &m)
 
MatrixSquareSymmetricoperator= (const MatrixSquareSymmetric &r)
 
virtual ~MatrixSquareSymmetric ()
 
bool mustBeSymmetric () const final
 
bool isSymmetric (bool printWhyNot=false) const final
 TODO : isPositiveDefinite. More...
 
void initMatTri (int nsize, double *tab)
 
void normSingleMatrix (const AMatrix &x)
 
void normTSingleMatrix (const AMatrix &x)
 
MatrixSquareSymmetricreduce (const VectorInt &validRows) const
 
- Public Member Functions inherited from AMatrixSquare
virtual ~AMatrixSquare ()
 
int getNSize () const
 
void normMatrix (const AMatrixSquare &x, const AMatrix &y)
 
void normTMatrix (const AMatrixSquare &x, const AMatrix &y)
 
double trace () const
 
void innerMatrix (const AMatrixSquare &x, const AMatrix &r1, const AMatrix &r2)
 
void prodDiagByVector (const VectorDouble &diag)
 
void divideDiagByVector (const VectorDouble &diag)
 
- Public Member Functions inherited from AMatrix
virtual ~AMatrix ()
 
void init (int nrows, int ncols)
 
void reset (int nrows, int ncols, double value=0.)
 
void resetFromArray (int nrows, int ncols, const double *tab, bool byCol=true)
 
void resetFromVD (int nrows, int ncols, const VectorDouble &tab, bool byCol=true)
 
void resetFromVVD (const VectorVectorDouble &tab, bool byCol=true)
 
virtual void setDiagonal (double value=1.)
 
virtual bool isSparse () const
 
virtual bool isSquare (bool printWhyNot=false) const
 
virtual bool isIdentity (bool printWhyNot=false) const
 
virtual bool isDiagCst (bool printWhyNot=false) const
 
virtual AMatrixtranspose () const
 
virtual void prodScalar (double v)
 
virtual double getValue (int irow, int icol) const
 
virtual double & getValueRef (int irow, int icol)
 
virtual void setValue (int irow, int icol, double value)
 
virtual void setValuesByArrays (const VectorInt &irows, const VectorInt &icols, const VectorDouble &values)
 
virtual void addMatrix (const AMatrix &y)
 
virtual void prodMatrix (const AMatrix &x, const AMatrix &y)
 
virtual void linearCombination (double cx, double cy, const AMatrix &y)
 
bool isSame (const AMatrix &m, double eps=EPSILON10)
 
bool isSameSize (const AMatrix &m) const
 
bool isEmpty () const
 
double compare (const AMatrix &mat) const
 
int getNRows () const
 
int getNCols () const
 
int getNTotal () const
 
VectorDouble getValues (bool byCol=true) const
 
VectorDouble getDiagonal (int shift=0) const
 
VectorDouble getRow (int irow) const
 
VectorDouble getColumn (int icol) const
 
void add (int irow, int icol, double value)
 
void add (const AMatrix &tab, double value=1.)
 
void subtract (const AMatrix &tab, double value=1.)
 
void getValuesAsTriplets (VectorInt &irows, VectorInt &icols, VectorDouble &values) const
 
void prodVector (const double *inv, double *outv) const
 
void prodVector (const VectorDouble &inv, VectorDouble &outv) const
 
void multiplyRow (const VectorDouble &vec)
 
void multiplyColumn (const VectorDouble &vec)
 
void divideRow (const VectorDouble &vec)
 
void divideColumn (const VectorDouble &vec)
 
double quadraticMatrix (const VectorDouble &x, const VectorDouble &y)
 
int invert ()
 
int solve (const VectorDouble &b, VectorDouble &x) const
 
void dumpElements (const String &title, int ifrom, int ito) const
 
void setIdentity (double value=1.)
 
void fill (double value)
 
void fillRandom (int seed=432432, double zeroPercent=0.1)
 
void setValues (const VectorDouble &values, bool byCol=true)
 
double getMeanByColumn (int icol) const
 
double getMinimum () const
 
double getMaximum () const
 
void copyReduce (const AMatrix *x, const VectorInt &activeRows, const VectorInt &activeCols)
 
void setFlagCheckAddress (bool flagCheckAddress)
 
double operator() (int row, int col) const
 
double & operator() (int row, int col)
 
- 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 MatrixSquareDiagonalCstcreateFromVVD (const VectorVectorDouble &X)
 
- Static Public Member Functions inherited from MatrixSquareDiagonal
static MatrixSquareDiagonalcreateFromVVD (const VectorVectorDouble &X)
 
- Static Public Member Functions inherited from MatrixSquareSymmetric
static MatrixSquareSymmetriccreateFromVVD (const VectorVectorDouble &X)
 

Public Attributes

 DECLARE_TOTL
 Has a specific implementation in the Target language. More...
 
- Public Attributes inherited from MatrixSquareDiagonal
 DECLARE_TOTL
 Has a specific implementation in the Target language. More...
 
- Public Attributes inherited from MatrixSquareSymmetric
 DECLARE_TOTL
 Has a specific implementation in the Target language. More...
 

Protected Member Functions

virtual double & _getValueRef (int irow, int icol) override
 
- Protected Member Functions inherited from MatrixSquareDiagonal
bool mustBeDiagonal () const override
 
- Protected Member Functions inherited from AMatrixSquare
 AMatrixSquare (int nrow=0)
 
 AMatrixSquare (const AMatrixSquare &m)
 
AMatrixSquareoperator= (const AMatrixSquare &r)
 
void _setNSize (int nval)
 
bool _isNumberValid (int nrows, int ncols) const
 
- Protected Member Functions inherited from AMatrix
 AMatrix (int nrow=0, int ncol=0)
 
 AMatrix (const AMatrix &m)
 
AMatrixoperator= (const AMatrix &m)
 
virtual void _clearContents ()
 
void _setNCols (int ncols)
 
void _setNRows (int nrows)
 
bool _isNumbersValid (int nrows, int ncols) const
 
bool _isColumnValid (int icol) const
 
bool _isRowValid (int irow) const
 
bool _isIndexValid (int irow, int icol) const
 
bool _isRowVectorConsistent (const VectorDouble &tab)
 
bool _isColVectorConsistent (const VectorDouble &tab)
 
bool _isVectorSizeConsistent (int nrows, int ncols, const VectorDouble &tab)
 
bool _isRankValid (int rank) const
 
void _clear ()
 
void _fillFromVVD (const VectorVectorDouble &X)
 
bool _getFlagCheckAddress () const
 

Private Member Functions

bool _isCompatible (const AMatrix &m) const override
 
int _getIndexToRank (int irow, int icol) const override
 
double _getValue (int irow, int icol) const override
 
double _getValue (int irank) const override
 
void _setValue (int irow, int icol, double value) override
 
void _setValue (int irank, double value) override
 
void _setValues (const double *values, bool byCol=true) override
 
int _getMatrixSize () const override
 
void _allocate () override
 
void _deallocate () override
 
void _prodVector (const double *inv, double *outv) const override
 
int _invert () override
 
int _solve (const VectorDouble &b, VectorDouble &x) const override
 
bool _isValidIndex (int irow, int icol) const
 
bool _isPhysicallyPresent (int irow, int icol) const override
 

Private Attributes

double _cstDiagMatrix
 

Detailed Description

Square Diagonal Matrices with diagonal filled with a constant value

Constructor & Destructor Documentation

◆ MatrixSquareDiagonalCst() [1/2]

MatrixSquareDiagonalCst::MatrixSquareDiagonalCst ( int  nrow = 0)

◆ MatrixSquareDiagonalCst() [2/2]

MatrixSquareDiagonalCst::MatrixSquareDiagonalCst ( const MatrixSquareDiagonalCst m)

◆ ~MatrixSquareDiagonalCst()

MatrixSquareDiagonalCst::~MatrixSquareDiagonalCst ( )
virtual

Member Function Documentation

◆ _allocate()

void MatrixSquareDiagonalCst::_allocate ( )
inlineoverrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _deallocate()

void MatrixSquareDiagonalCst::_deallocate ( )
inlineoverrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _getIndexToRank()

int MatrixSquareDiagonalCst::_getIndexToRank ( int  irow,
int  icol 
) const
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _getMatrixSize()

int MatrixSquareDiagonalCst::_getMatrixSize ( ) const
inlineoverrideprivatevirtual

Returns the number of elements actually stored as members in subsequent classes

Reimplemented from MatrixSquareDiagonal.

◆ _getValue() [1/2]

double MatrixSquareDiagonalCst::_getValue ( int  irank) const
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _getValue() [2/2]

double MatrixSquareDiagonalCst::_getValue ( int  irow,
int  icol 
) const
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _getValueRef()

double & MatrixSquareDiagonalCst::_getValueRef ( int  irow,
int  icol 
)
overrideprotectedvirtual

Reimplemented from MatrixSquareDiagonal.

◆ _invert()

int MatrixSquareDiagonalCst::_invert ( )
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _isCompatible()

bool MatrixSquareDiagonalCst::_isCompatible ( const AMatrix m) const
inlineoverrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _isPhysicallyPresent()

bool MatrixSquareDiagonalCst::_isPhysicallyPresent ( int  ,
int   
) const
overrideprivatevirtual

Say if (irow, icol) is stored physically or not

Reimplemented from MatrixSquareDiagonal.

◆ _isValidIndex()

bool MatrixSquareDiagonalCst::_isValidIndex ( int  irow,
int  icol 
) const
private

◆ _prodVector()

void MatrixSquareDiagonalCst::_prodVector ( const double *  inv,
double *  outv 
) const
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _setValue() [1/2]

void MatrixSquareDiagonalCst::_setValue ( int  irank,
double  value 
)
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _setValue() [2/2]

void MatrixSquareDiagonalCst::_setValue ( int  irow,
int  icol,
double  value 
)
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ _setValues()

void MatrixSquareDiagonalCst::_setValues ( const double *  values,
bool  byCol = true 
)
overrideprivatevirtual

Fill 'this' with the contents of 'values'. Note that 'values' is dimensioned to 'nrows' by 'ncols'

Parameters
valuesInput array
byColTrue is the values are sorted by Column

Reimplemented from MatrixSquareDiagonal.

◆ _solve()

int MatrixSquareDiagonalCst::_solve ( const VectorDouble b,
VectorDouble x 
) const
overrideprivatevirtual

Reimplemented from MatrixSquareDiagonal.

◆ addScalar()

void MatrixSquareDiagonalCst::addScalar ( double  v)
overridevirtual

Add a value to each matrix component

Reimplemented from MatrixSquareDiagonal.

◆ addScalarDiag()

void MatrixSquareDiagonalCst::addScalarDiag ( double  v)
overridevirtual

Add value to matrix diagonal

Reimplemented from AMatrix.

◆ createFromVVD()

MatrixSquareDiagonalCst * MatrixSquareDiagonalCst::createFromVVD ( const VectorVectorDouble X)
static

Converts a VectorVectorDouble into a Matrix Note: the input argument is stored by row (if coming from [] specification)

Parameters
XInput VectorVectorDouble argument
Returns
The returned matrix
Remarks
: the matrix is transposed implicitly while reading

◆ determinant()

double MatrixSquareDiagonalCst::determinant ( void  ) const
overridevirtual

Returns the Determinant value

Reimplemented from MatrixSquareDiagonal.

◆ isValid()

bool MatrixSquareDiagonalCst::isValid ( int  irow,
int  icol,
bool  printWhyNot = false 
) const
overridevirtual

Indicate if the given indices are valid for the current matrix size

Reimplemented from MatrixSquareDiagonal.

◆ mustBeDiagCst()

bool MatrixSquareDiagonalCst::mustBeDiagCst ( ) const
inlineoverridevirtual

Say if the matrix must be diagonal constant

Reimplemented from MatrixSquareDiagonal.

◆ operator=()

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

◆ setColumn()

void MatrixSquareDiagonalCst::setColumn ( int  icol,
const VectorDouble tab 
)
overridevirtual

Set the contents of a Column

Reimplemented from MatrixSquareDiagonal.

◆ setDiagonal()

void MatrixSquareDiagonalCst::setDiagonal ( const VectorDouble tab)
overridevirtual

Set the contents of the (main) Diagonal

Reimplemented from AMatrix.

◆ setRow()

void MatrixSquareDiagonalCst::setRow ( int  irow,
const VectorDouble tab 
)
overridevirtual

Set the contents of a Row

Reimplemented from MatrixSquareDiagonal.

◆ toString()

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

ICloneable interface.

AStringable Interface

Reimplemented from MatrixSquareDiagonal.

◆ transposeInPlace()

void MatrixSquareDiagonalCst::transposeInPlace ( )
overridevirtual

Transpose the matrix

Reimplemented from MatrixSquareDiagonal.

Member Data Documentation

◆ _cstDiagMatrix

double MatrixSquareDiagonalCst::_cstDiagMatrix
private

◆ DECLARE_TOTL

MatrixSquareDiagonalCst::DECLARE_TOTL

Has a specific implementation in the Target language.


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