|
| | MatrixSquare (Id nrow=0) |
| |
| | MatrixSquare (Id nrow, Id ncol) |
| |
| | MatrixSquare (const MatrixSquare &r) |
| |
| | MatrixSquare (const AMatrix &m) |
| |
| MatrixSquare & | operator= (const MatrixSquare &r) |
| |
| virtual | ~MatrixSquare () |
| |
| virtual DECLARE_TOLATEX double | determinant (void) const |
| | ICloneable interface.
|
| |
| bool | isSquare (bool printWhyNot=false) const override |
| |
| bool | mustBeSymmetric () const override |
| |
| Id | getNSize () const |
| |
| void | resetFromVVD (const 1 &tab, bool byCol=true) override |
| | Reset the matrix from an array of double values.
|
| |
| double | trace () const |
| |
| bool | invert2x2 (MatrixSquare &res) const |
| | Compute the inverse of this 2x2 square matrix.
|
| |
| bool | invert3x3 (MatrixSquare &res) const |
| | Compute the inverse of this 3x3 square matrix.
|
| |
| Id | invertOutOfPlace (MatrixSquare &res) const |
| |
| void | innerMatrix (const MatrixSquare &x, const AMatrix &r1, const AMatrix &r2) |
| |
| void | prodDiagByVector (const 1 &diag) |
| |
| void | divideDiagByVector (const 1 &diag) |
| |
| void | prodByDiagInPlace (Id mode, const 1 &c) |
| |
| double | normVec (const 1 &vec) |
| |
| Id | decomposeLU (MatrixSquare &tls, MatrixSquare &tus, double eps=EPSILON20) |
| |
| | MatrixDense (Id nrow=0, Id ncol=0) |
| |
| | MatrixDense (const MatrixDense &r) |
| |
| | MatrixDense (const AMatrix &r) |
| |
| MatrixDense & | operator= (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 |
| |
| void | prodMatMatInPlace (const AMatrix *x, const AMatrix *y, bool transposeX=false, bool transposeY=false) override |
| |
| MatrixDense & | addCst (double a) |
| |
| MatrixDense & | prodCst (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) |
| |
| MatrixDense & | operator+= (double a) |
| |
| MatrixDense & | operator-= (double a) |
| |
| MatrixDense | operator+ (double a) const |
| |
| MatrixDense | operator- (double a) const |
| |
| MatrixDense & | operator*= (double a) |
| |
| MatrixDense | operator* (double a) const |
| |
| MatrixDense & | operator/= (double a) |
| |
| MatrixDense | operator/ (double a) const |
| |
| Eigen::Map< const Eigen::MatrixXd, Eigen::Unaligned > | eigenMat () const |
| |
| Eigen::Map< Eigen::MatrixXd, Eigen::Unaligned > | eigenMat () |
| |
| | AMatrix (Id nrow=0, Id ncol=0) |
| |
| | AMatrix (const AMatrix &m) |
| |
| AMatrix & | operator= (const AMatrix &m) |
| |
| | AMatrix (AMatrix &&m)=default |
| |
| AMatrix & | operator= (AMatrix &&m)=default |
| |
| virtual | ~AMatrix () |
| |
| String | toString (const AStringFormat *strfmt=nullptr) const override |
| | Interface to AStringable.
|
| |
| 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 | transposeInPlace () |
| |
| virtual AMatrix * | transpose () 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) |
| |
| | 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 |
| |
| void | printConcreteClassName () const |
| |
| | ICloneable () |
| |
| virtual | ~ICloneable () |
| |
| virtual ICloneable * | clone () const =0 |
| |
| std::shared_ptr< ICloneable > | cloneShared () const |
| |
| std::unique_ptr< ICloneable > | cloneUnique () const |
| |
|
| static MatrixSquare * | createFromVVD (const 1 &X) |
| |
| static MatrixSquare * | createFromVD (const 1 &X, Id nrow, bool byCol=false, bool invertColumnOrder=false) |
| |
| static MatrixSquare * | createFromTridiagonal (const 1 &vecdiag, const 1 &vecinf, const 1 &vecsup) |
| | Create a square matrix from three diagonals.
|
| |
| 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 MatrixDense * | create (const MatrixDense *mat) |
| |
| static MatrixDense * | create (Id nrow, Id ncol) |
| |
| static double | traceProd (const MatrixDense &a, MatrixDense &b) |
| |
| static MatrixDense * | createFromVVD (const 1 &X) |
| |
| static MatrixDense * | createFromVD (const 1 &X, Id nrow, Id ncol, bool byCol=false, bool invertColumnOrder=false) |
| |
| static MatrixDense * | createFillRandom (Id nrow, Id ncol, Id seed=13242) |
| |
| static MatrixDense * | glue (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) |
| |
| 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.
|
| |