Square Symmetric matrices
|
| | MatrixSquareSymmetric (int nrow=0) |
| |
| | MatrixSquareSymmetric (const MatrixSquareSymmetric &m) |
| |
| | MatrixSquareSymmetric (const AMatrix &m) |
| |
| MatrixSquareSymmetric & | operator= (const MatrixSquareSymmetric &m) |
| |
| virtual | ~MatrixSquareSymmetric () |
| |
| bool | mustBeSymmetric () const final |
| | ICloneable interface. More...
|
| |
| bool | isSymmetric (bool printWhyNot=false, double eps=EPSILON10) const final |
| | Is the matrix symmetrical ? More...
|
| |
| void | normMatrix (const AMatrix &y, const AMatrixSquare &x=AMatrixSquare(), bool transpose=false) |
| |
| int | computeEigen (bool optionPositive=true) |
| |
| int | computeGeneralizedEigen (const MatrixSquareSymmetric &b, bool optionPositive=true) |
| |
| int | computeGeneralizedInverse (MatrixSquareSymmetric &tabout, double maxicond=1.e20, double eps=EPSILON20) |
| |
| bool | isDefinitePositive () |
| |
| int | minimizeWithConstraintsInPlace (const VectorDouble &gmat, const MatrixRectangular &aemat, const VectorDouble &bemat, const MatrixRectangular &aimat, const VectorDouble &bimat, VectorDouble &xmat) |
| |
| int | getTriangleSize () const |
| |
| int | computeCholesky () |
| |
| int | invertCholesky () |
| |
| int | solveCholeskyMat (const MatrixRectangular &b, MatrixRectangular &x) |
| |
| int | solveCholesky (const VectorDouble &b, VectorDouble &x) |
| |
| VectorDouble | getCholeskyTL () const |
| |
| double | getCholeskyTL (int i, int j) const |
| |
| double | getCholeskyTL (int iad) const |
| |
| VectorDouble | getCholeskyXL () const |
| |
| double | getCholeskyXL (int i, int j) const |
| |
| double | computeCholeskyLogDeterminant () const |
| |
| virtual bool | _isPhysicallyPresent (int irow, int icol) const override |
| |
| virtual void | _setValues (const double *values, bool byCol=true) override |
| |
| virtual int | _invert () override |
| |
| void | _recopy (const MatrixSquareSymmetric &r) |
| |
| int | _matrix_qo (const VectorDouble &gmat, VectorDouble &xmat) |
| |
| int | _matrix_qoc (bool flag_invert, const VectorDouble &gmat, int na, const MatrixRectangular &amat, const VectorDouble &bmat, VectorDouble &xmat, VectorDouble &lambda) |
| |
| int | _constraintsError (const VectorInt &active, const MatrixRectangular &aimat, const VectorDouble &bimat, const VectorDouble &xmat, VectorDouble &vmat, VectorInt &flag) |
| |
| bool | _checkCholeskyAlreadyPerformed (int status) const |
| |
| int | _terminateEigen (const VectorDouble &eigenValues, const VectorDouble &eigenVectors, bool optionPositive=true, bool changeOrder=false) |
| |
| | AMatrixSquare (int nrow=0) |
| |
| | AMatrixSquare (const AMatrixSquare &r) |
| |
| | AMatrixSquare (const AMatrix &m) |
| |
| AMatrixSquare & | operator= (const AMatrixSquare &r) |
| |
| virtual | ~AMatrixSquare () |
| |
| virtual double | determinant (void) const |
| | Interface for AMatrix. More...
|
| |
| bool | isSquare (bool printWhyNot=false) const override |
| |
| int | getNSize () const |
| |
| double | trace () const |
| |
| void | innerMatrix (const AMatrixSquare &x, const AMatrix &r1, const AMatrix &r2) |
| |
| void | prodDiagByVector (const VectorDouble &diag) |
| |
| void | divideDiagByVector (const VectorDouble &diag) |
| |
| void | prodByDiagInPlace (int mode, const VectorDouble &c) |
| |
| double | normVec (const VectorDouble &vec) |
| |
| | MatrixRectangular (int nrow=0, int ncol=0) |
| |
| | MatrixRectangular (const MatrixRectangular &r) |
| |
| | MatrixRectangular (const AMatrix &m) |
| |
| MatrixRectangular & | operator= (const MatrixRectangular &r) |
| |
| virtual | ~MatrixRectangular () |
| |
| void | unsample (const AMatrix *A, const VectorInt &rowFetch, const VectorInt &colFetch) |
| | Set the values contained in 'A' into the current matrix. More...
|
| |
| void | addRow (int nrow_added=1) |
| |
| void | addColumn (int ncolumn_added=1) |
| |
| | AMatrixDense (int nrow=0, int ncol=0) |
| |
| | AMatrixDense (const AMatrixDense &r) |
| |
| | AMatrixDense (const AMatrix &m) |
| |
| AMatrixDense & | operator= (const AMatrixDense &r) |
| |
| virtual | ~AMatrixDense () |
| |
| bool | isDense () const override |
| | Interface for AMatrix. More...
|
| |
| bool | isSparse () const override |
| |
| void | setValue (int irow, int icol, double value, bool flagCheck=false) override |
| |
| virtual double | getValue (int irow, int icol, bool flagCheck=false) const override |
| |
| void | updValue (int irow, int icol, const EOperator &oper, double value, bool flagCheck=false) override |
| |
| virtual void | setColumn (int icol, const VectorDouble &tab, bool flagCheck=true) override |
| |
| virtual void | setRow (int irow, const VectorDouble &tab, bool flagCheck=true) override |
| |
| virtual void | setDiagonal (const VectorDouble &tab, bool flagCheck=true) override |
| |
| virtual void | setDiagonalToConstant (double value=1.) override |
| |
| virtual void | addScalar (double v) override |
| |
| virtual void | addScalarDiag (double v) override |
| |
| virtual void | prodScalar (double v) override |
| |
| virtual void | fill (double value) override |
| |
| virtual void | multiplyRow (const VectorDouble &vec) override |
| |
| virtual void | multiplyColumn (const VectorDouble &vec) override |
| |
| virtual void | divideRow (const VectorDouble &vec) override |
| |
| virtual void | divideColumn (const VectorDouble &vec) override |
| |
| virtual VectorDouble | prodVecMat (const VectorDouble &x, bool transpose=false) const override |
| |
| virtual VectorDouble | prodMatVec (const VectorDouble &x, bool transpose=false) const override |
| |
| virtual VectorDouble | getRow (int irow) const override |
| |
| virtual VectorDouble | getColumn (int icol) const override |
| |
| virtual void | prodMatMatInPlace (const AMatrix *x, const AMatrix *y, bool transposeX=false, bool transposeY=false) override |
| |
| void | addMatInPlace (const AMatrixDense &y, double cx=1., double cy=1.) |
| | The next functions use specific definition of matrix (to avoid dynamic_cast) rather than manipulating AMatrix. They are not generic of AMatrix anymore. WARNING: output matrix should not match any of input matrices (speed up). More...
|
| |
| virtual void | prodNormMatMatInPlace (const AMatrixDense *a, const AMatrixDense *m, bool transpose=false) |
| |
| virtual void | prodNormMatInPlace (const AMatrixDense &a, const VectorDouble &vec=VectorDouble(), bool transpose=false) |
| |
| VectorDouble | getEigenValues () const |
| |
| const MatrixSquareGeneral * | getEigenVectors () const |
| |
| const Eigen::MatrixXd * | getTab () const |
| |
| | AMatrix (int nrow=0, int ncol=0) |
| |
| | AMatrix (const AMatrix &m) |
| |
| AMatrix & | operator= (const AMatrix &m) |
| |
| virtual | ~AMatrix () |
| |
| virtual void | reset (int nrows, int ncols) |
| |
| virtual void | resetFromValue (int nrows, int ncols, double value) |
| | Reset the matrix to new dimensions and fill with a new value. More...
|
| |
| virtual void | resetFromArray (int nrows, int ncols, const double *tab, bool byCol=true) |
| | Reset the matrix from an array of double values. More...
|
| |
| virtual void | resetFromVD (int nrows, int ncols, const VectorDouble &tab, bool byCol=true) |
| | Reset the matrix from a vector of double values. More...
|
| |
| virtual void | resetFromVVD (const VectorVectorDouble &tab, bool byCol=true) |
| | Reset the matrix from an array of double values. More...
|
| |
| virtual String | toString (const AStringFormat *strfmt=nullptr) const override |
| | Interface to AStringable. More...
|
| |
| virtual bool | isValid (int irow, int icol, bool printWhyNot=false) const |
| |
| virtual bool | isIdentity (bool printWhyNot=false) const |
| |
| virtual void | transposeInPlace () |
| |
| virtual AMatrix * | transpose () const |
| |
| virtual NF_Triplet | getMatrixToTriplet (int shiftRow=0, int shiftCol=0) const |
| |
| void | addMatInPlace (const AMatrix &y, double cx=1., double cy=1.) |
| |
| void | prodMatInPlace (const AMatrix *matY, bool transposeY=false) |
| |
| void | prodNormMatMatInPlace (const AMatrix *a, const AMatrix *m, bool transpose=false) |
| |
| void | prodNormMatInPlace (const AMatrix &a, const VectorDouble &vec=VectorDouble(), bool transpose=false) |
| |
| void | resize (int nrows, int ncols) |
| | Resize the matrix to new dimensions (this method doesn't change the storage type) More...
|
| |
| void | addValue (int irow, int 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 |
| |
| int | getNRows () const |
| |
| int | getNCols () const |
| |
| int | size () const |
| |
| VectorDouble | getValues (bool byCol=true) const |
| |
| VectorDouble | getDiagonal (int shift=0) const |
| |
| bool | isColumnDefined (int icol) const |
| |
| bool | isRowDefined (int irow) const |
| |
| int | getNumberColumnDefined () const |
| |
| int | getNumberRowDefined () const |
| |
| bool | isNonNegative (bool verbose=false) const |
| |
| void | prodMatVecInPlace (const VectorDouble &x, VectorDouble &y, bool transpose=false) const |
| |
| int | prodMatVecInPlace (const Eigen::VectorXd &x, Eigen::VectorXd &y, bool transpose=false) const |
| |
| void | prodMatVecInPlacePtr (const double *x, double *y, bool transpose=false) const |
| |
| void | prodVecMatInPlace (const VectorDouble &x, VectorDouble &y, bool transpose=false) const |
| |
| void | prodVecMatInPlacePtr (const double *x, double *y, bool transpose=false) const |
| |
| 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 | fillRandom (int seed=432432, double zeroPercent=0) |
| |
| void | setValues (const VectorDouble &values, bool byCol=true) |
| |
| double | getMeanByColumn (int icol) const |
| |
| double | getMinimum () const |
| |
| double | getMaximum () const |
| |
| double | getNormInf () const |
| |
| void | copyReduce (const AMatrix *x, const VectorInt &validRows, const VectorInt &validCols) |
| |
| void | copyElements (const AMatrix &m, double factor=1.) |
| |
| void | setFlagCheckAddress (bool flagCheckAddress) |
| |
| void | makePositiveColumn () |
| |
| void | linearCombination (double val1, const AMatrix *mat1, double val2=1., const AMatrix *mat2=nullptr, double val3=1., const AMatrix *mat3=nullptr) |
| |
| virtual int | addProdMatVecInPlace (const Eigen::VectorXd &x, Eigen::VectorXd &y, bool transpose=false) const |
| |
| double | operator() (int row, int col) const |
| |
| double & | operator() (int row, int 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 (int level) const final |
| |
| | ICloneable () |
| |
| virtual | ~ICloneable () |
| |
| virtual ICloneable * | clone () const =0 |
| |
|
| static MatrixSquareSymmetric * | createFromVVD (const VectorVectorDouble &X) |
| |
| static MatrixSquareSymmetric * | createFromVD (const VectorDouble &X, int nrow) |
| |
| static MatrixSquareSymmetric * | createFromTLTU (int neq, const VectorDouble &tl) |
| |
| static MatrixSquareSymmetric * | createFromTriangle (int mode, int neq, const VectorDouble &tl) |
| |
| static MatrixSquareSymmetric * | createRandomDefinitePositive (int neq, int seed=13242) |
| |
| static MatrixSquareSymmetric * | sample (const MatrixSquareSymmetric *A, const VectorInt &rowKeep) |
| | Create an output Square Symmetric Matrix by selecting some rows (and columns) of the Input matrix 'A'. More...
|
| |
| static MatrixRectangular | productCholeskyInPlace (int mode, int neq, int nrhs, const VectorDouble &tl, const MatrixRectangular &a) |
| |
| static MatrixSquareSymmetric | normCholeskyInPlace (int mode, int neq, const VectorDouble &tl, const MatrixSquareSymmetric &a) |
| |
| static int | _constraintsConcatenateMat (int nae, int nai, int neq, const VectorInt &active, const MatrixRectangular &tabemat, const MatrixRectangular &tabimat, MatrixRectangular &tabout) |
| |
| static int | _constraintsConcatenateVD (int nae, int nai, const VectorInt &active, const VectorDouble &tabemat, const VectorDouble &tabimat, VectorDouble &tabout) |
| |
| static int | _constraintsCount (int nai, VectorInt &active) |
| |
| static MatrixRectangular * | createFromVVD (const VectorVectorDouble &X) |
| |
| static MatrixRectangular * | createFromVD (const VectorDouble &X, int nrow, int ncol, bool byCol=false, bool invertColumnOrder=false) |
| |
| static MatrixRectangular * | glue (const AMatrix *A1, const AMatrix *A2, bool flagShiftRow, bool flagShiftCol) |
| |
| static MatrixRectangular * | sample (const AMatrix *A, const VectorInt &rowKeep=VectorInt(), const VectorInt &colKeep=VectorInt()) |
| | Create an output Rectangular Matrix by selecting some rows and columns of the Input matrix 'A'. More...
|
| |