Dense Matrix This class provides all the functions that can be performed using a Matrix stored in "Dense" format (in opposition to the "Sparse" format). This class can be derived in the case the matrix is Square, and even more if it is Square and Symmetric.
|
| MatrixDense (Id nrow=0, Id ncol=0) |
|
| MatrixDense (const MatrixDense &r) |
|
| MatrixDense (const AMatrix &r) |
|
MatrixDense & | operator= (const MatrixDense &r) |
|
virtual | ~MatrixDense () |
|
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 |
|
void | setColumn (Id icol, const 1 &tab) override |
|
void | setColumnToConstant (Id icol, double value) 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 | addScalar (double v) override |
|
void | addScalarDiag (double v) override |
|
void | prodScalar (double v) override |
|
void | fill (double value) 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 |
|
bool | mustBeSymmetric () const override |
|
| getRow (Id irow) const override |
|
| getColumn (Id icol) const override |
|
void | prodMatMatInPlace (const AMatrix *x, const AMatrix *y, bool transposeX=false, bool transposeY=false) override |
|
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 | linearCombination (double val1, const AMatrix *mat1, double val2=1., const AMatrix *mat2=nullptr, double val3=1., const AMatrix *mat3=nullptr) override |
|
void | addMat (const AMatrix &y, double cx=1., double cy=1.) override |
|
const & | getEigenValues () const |
|
const MatrixSquare * | getEigenVectors () const |
|
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) |
|
constvect | getColumnPtr (Id icol) const |
|
constvect | getViewOnColumn (Id icol) const |
|
vect | getViewOnColumnModify (Id icol) |
|
Eigen::Map< const Eigen::MatrixXd > | eigenMat () const |
|
Eigen::Map< Eigen::MatrixXd > | eigenMat () |
|
| AMatrix (Id nrow=0, Id ncol=0) |
|
| AMatrix (const AMatrix &m) |
|
AMatrix & | operator= (const AMatrix &m) |
|
virtual | ~AMatrix () |
|
String | toString (const AStringFormat *strfmt=nullptr) const override |
| Interface to AStringable.
|
|
virtual bool | isSquare (bool printWhyNot=false) const |
|
virtual bool | isSymmetric (double eps=EPSILON10, bool printWhyNot=false) const |
|
virtual void | reset (Id nrows, Id ncols) |
|
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 AMatrix * | transpose () 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 |
|
| prodMatVec (const 1 &x, bool transpose=false) const |
|
void | prodMatVecInPlace (const 1 &x, 1 &y, bool transpose=false) const |
|
void | prodMatVecInPlaceC (const constvect x, vect y, bool transpose=false) const |
|
void | addProdMatVecInPlaceC (const constvect x, vect y, bool transpose=false) const |
|
| prodVecMat (const 1 &x, bool transpose=false) const |
|
void | prodVecMatInPlace (const 1 &x, 1 &y, bool transpose=false) const |
|
void | prodVecMatInPlaceC (const constvect x, vect y, bool transpose=false) const |
|
void | addProdVecMatInPlaceC (const constvect x, vect y, bool transpose=false) const |
|
double | prodVecMatVec (const 1 &x, const 1 &y) const |
|
void | prodMat (const AMatrix *matY, bool transposeY=false) |
|
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.) |
|
void | fillRandom (Id seed=432432, double zeroPercent=0) |
|
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) |
|
| AStringable () |
|
| AStringable (const AStringable &r) |
|
AStringable & | operator= (const AStringable &r) |
|
virtual | ~AStringable () |
|
virtual void | display (const AStringFormat *strfmt=nullptr) const final |
|
virtual void | display (Id level) const final |
|
| ICloneable () |
|
virtual | ~ICloneable () |
|
virtual ICloneable * | clone () const =0 |
|
std::shared_ptr< ICloneable > | cloneShared () const |
|
std::unique_ptr< ICloneable > | cloneUnique () const |
|