gstlearn
1.0.0
CCC
|
#include <MatrixSquareGeneral.hpp>
Public Member Functions | |
MatrixSquareGeneral (int nrow=0) | |
MatrixSquareGeneral (const MatrixSquareGeneral &m) | |
MatrixSquareGeneral (const AMatrix &m) | |
MatrixSquareGeneral & | operator= (const MatrixSquareGeneral &r) |
virtual | ~MatrixSquareGeneral () |
bool | mustBeSymmetric () const override |
ICloneable interface. More... | |
bool | mustBeDiagonal () const override |
bool | mustBeDiagCst () const override |
bool | isSquare (bool printWhyNot=false) const override |
MatrixSquareGeneral * | reduce (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) |
virtual double | determinant (void) const |
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 | setColumn (int icol, const VectorDouble &tab) |
virtual void | setRow (int irow, const VectorDouble &tab) |
virtual void | setDiagonal (const VectorDouble &tab) |
virtual void | setDiagonal (double value=1.) |
virtual bool | isSparse () const |
virtual bool | isValid (int irow, int icol, bool printWhyNot=false) const |
virtual bool | isIdentity (bool printWhyNot=false) const |
virtual bool | isSymmetric (bool printWhyNot=false) const |
virtual bool | isDiagonal (bool printWhyNot=false) const |
virtual bool | isDiagCst (bool printWhyNot=false) const |
virtual void | transposeInPlace () |
virtual AMatrix * | transpose () const |
virtual void | addScalar (double v) |
virtual void | addScalarDiag (double v) |
virtual void | prodScalar (double v) |
virtual String | toString (const AStringFormat *strfmt=nullptr) const override |
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 |
bool | isColumnDefined (int icol) const |
bool | isRowDefined (int irow) const |
int | getNumberColumnDefined () const |
int | getNumberRowDefined () 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) | |
AStringable & | operator= (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 ICloneable * | clone () const =0 |
Static Public Member Functions | |
static MatrixSquareGeneral * | createFromVVD (const VectorVectorDouble &X) |
Public Attributes | |
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 AMatrixSquare | |
AMatrixSquare (int nrow=0) | |
AMatrixSquare (const AMatrixSquare &m) | |
AMatrixSquare & | operator= (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) | |
AMatrix & | operator= (const AMatrix &m) |
virtual bool | _isPhysicallyPresent (int, int) const |
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 | _transposeInPlace () 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 |
void | _recopy (const MatrixSquareGeneral &r) |
Private Attributes | |
VectorDouble | _squareMatrix |
Square Matrix General
MatrixSquareGeneral::MatrixSquareGeneral | ( | int | nrow = 0 | ) |
MatrixSquareGeneral::MatrixSquareGeneral | ( | const MatrixSquareGeneral & | m | ) |
MatrixSquareGeneral::MatrixSquareGeneral | ( | const AMatrix & | m | ) |
|
virtual |
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Returns the number of elements actually stored as members in subsequent classes
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprotectedvirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
inlineoverrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Right product of this by in gives out
inv | Input Vector |
outv | Output Vector |
Implements AMatrix.
|
private |
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Filling the matrix with an array of values Note that this array is ALWAYS dimensioned to the total number of elements in the matrix. Kept for compatibility with old code where matrix contents was stored as a double* array
values | Input array (Dimension: nrow * ncol) |
byCol | true for Column major; false for Row Major |
Reimplemented from AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
static |
Converts a VectorVectorDouble into a Matrix Note: the input argument is stored by row (if coming from [] specification)
X | Input VectorVectorDouble argument |
|
inlineoverridevirtual |
Check if the matrix is (non empty) square
Reimplemented from AMatrix.
|
inlineoverridevirtual |
Say if the matrix must be diagonal constant
Reimplemented from AMatrix.
|
inlineoverridevirtual |
Say if the matrix must be diagonal
Reimplemented from AMatrix.
|
inlineoverridevirtual |
MatrixSquareGeneral & MatrixSquareGeneral::operator= | ( | const MatrixSquareGeneral & | r | ) |
MatrixSquareGeneral * MatrixSquareGeneral::reduce | ( | const VectorInt & | validRows | ) | const |
|
private |
MatrixSquareGeneral::DECLARE_TOTL |
Has a specific implementation in the Target language.