gstlearn
1.0.0
CCC
|
#include <MatrixRectangular.hpp>
Public Member Functions | |
MatrixRectangular (int nrow=0, int ncol=0) | |
MatrixRectangular (const MatrixRectangular &m) | |
MatrixRectangular & | operator= (const MatrixRectangular &r) |
virtual | ~MatrixRectangular () |
bool | mustBeSymmetric () const override |
Cloneable interface. More... | |
bool | mustBeDiagonal () const override |
bool | mustBeDiagCst () const override |
void | addRow (int nrow_added=1) |
void | addColumn (int ncolumn_added=1) |
MatrixRectangular * | reduce (const VectorInt &validRows, const VectorInt &validCols) 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 | isSquare (bool printWhyNot=false) 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 MatrixRectangular * | createFromVVD (const VectorVectorDouble &X) |
static MatrixRectangular * | createFromVD (const VectorDouble &X, int nrow, int ncol, bool byCol=false) |
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 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 rank, double value) override |
void | _setValue (int irow, int icol, double value) override |
void | _setValues (const double *values, bool byCol=true) override |
int | _getMatrixSize () const override |
void | _transposeInPlace () 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 |
Private Attributes | |
VectorDouble | _rectMatrix |
Rectangular matrices are stored by columns
MatrixRectangular::MatrixRectangular | ( | int | nrow = 0 , |
int | ncol = 0 |
||
) |
MatrixRectangular::MatrixRectangular | ( | const MatrixRectangular & | 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 |
Gets a reference to the value at row 'irow' and column 'icol'
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
inlineoverrideprivatevirtual |
Implements AMatrix.
|
overrideprivatevirtual |
Implements AMatrix.
|
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.
void MatrixRectangular::addColumn | ( | int | ncolumn_added = 1 | ) |
void MatrixRectangular::addRow | ( | int | nrow_added = 1 | ) |
Adding a Row or a Column (at the bottom or right of Rectangular Matrix)
|
static |
|
static |
Converts a VectorVectorDouble into a Matrix Note: the input argument is stored by row (if coming from [] specification)
X | Input VectorVectorDouble argument |
|
inlineoverridevirtual |
Say if the matrix must be diagonal constant
Reimplemented from AMatrix.
|
inlineoverridevirtual |
Say if the matrix must be diagonal
Reimplemented from AMatrix.
|
inlineoverridevirtual |
MatrixRectangular & MatrixRectangular::operator= | ( | const MatrixRectangular & | r | ) |
MatrixRectangular * MatrixRectangular::reduce | ( | const VectorInt & | validRows, |
const VectorInt & | validCols | ||
) | const |
|
private |
MatrixRectangular::DECLARE_TOTL |
Has a specific implementation in the Target language.