invNuggetOp
This class is used to represent the inverse covariance matrix operator of a nugget effect. It can be multivariate with anisotropy. It stores the inverse submatrices for each location, allowing efficient computation of the logdeterminant. It inherits from ASimulable, allowing it to be used in simulations.
|
| | InvNuggetOp (const Db *dbin=nullptr, Model *model=nullptr, const SPDEParam ¶ms=SPDEParam(), bool flagEigVals=false) |
| |
| | InvNuggetOp (const InvNuggetOp &m)=delete |
| |
| InvNuggetOp & | operator= (const InvNuggetOp &m)=delete |
| |
| virtual | ~InvNuggetOp () |
| |
| Id | getSize () const override |
| |
| const MatrixSparse * | getInvNuggetMatrix () const |
| |
| const MatrixSparse & | getQMat () const override |
| |
| const MatrixSparse * | cloneInvNuggetMatrix () const |
| |
| const MatrixSparse * | cloneCholNuggetMatrix () const |
| |
| double | computeLogDet (Id nMC=1) const override |
| |
| double | getMinEigenValue () const |
| |
| double | getMaxEigenValue () const |
| |
| std::pair< double, double > | getRangeEigenValue () const |
| |
| | MatrixSparse (Id nrow=0, Id ncol=0, Id ncolmax=-1) |
| |
| | MatrixSparse (const MatrixSparse &m) |
| |
| MatrixSparse & | operator= (const MatrixSparse &m) |
| |
| | MatrixSparse (MatrixSparse &&m)=default |
| |
| MatrixSparse & | operator= (MatrixSparse &&m)=default |
| |
| virtual | ~MatrixSparse () |
| |
| DECLARE_TOLATEX Id | getSize () const override |
| | Cloneable interface.
|
| |
| const MatrixSparse & | getQMat () const override |
| | Interface for AMatrix.
|
| |
| bool | isSparse () const override |
| |
| bool | isDense () const override |
| |
| double | getValue (Id row, Id col) 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 | 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 |
| |
| void | resetFromValue (Id nrows, Id ncols, double value) override |
| | Reset the matrix to new dimensions and fill with a new value.
|
| |
| void | resetFromArray (Id nrows, Id ncols, const double *tab, bool byCol=true) override |
| | Reset the matrix from an array of double values.
|
| |
| void | resetFromVD (Id nrows, Id ncols, const 1 &tab, bool byCol=true) override |
| | Reset the matrix from a vector of double values.
|
| |
| void | resetFromVVD (const 1 &tab, bool byCol=true) override |
| | Reset the matrix from an array of double values.
|
| |
| MatrixSparse * | transpose () 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 |
| |
| NF_Triplet | getMatrixToTriplet (Id shiftRow=0, Id shiftCol=0) const override |
| |
| MatrixSparse & | addCst (double a) |
| |
| MatrixSparse & | prodCst (double a) |
| |
| MatrixSparse * | getRowAsMatrixSparse (Id irow, double coeff=1.) const |
| |
| MatrixSparse * | getColumnAsMatrixSparse (Id icol, double coeff=1.) const |
| |
| Id | addVecInPlaceEigen (const Eigen::Map< const Eigen::VectorXd > &xm, Eigen::Map< Eigen::VectorXd > &ym) const |
| |
| void | resetFromTriplet (const NF_Triplet &NF_T) |
| |
| void | fillRandom (double zeroPercent=0, Id seed=432432) override |
| | Fill a sparse matrix with random values, using a given seed and a percentage of zero values.
|
| |
| Id | addVecInPlace (const constvect x, vect y) const |
| |
| void | addValue (Id row, Id col, double value) |
| |
| double | L1Norm () const |
| |
| void | getStats (Id *nrows, Id *ncols, Id *count, double *percent) const |
| |
| Id | scaleByDiag () |
| |
| Id | addVecInPlaceVD (const 1 &x, 1 &y) const |
| |
| void | setConstant (double value) |
| |
| | extractDiag (Id oper_choice=1) const |
| |
| void | prodNormDiagVecInPlace (const 1 &vec, Id oper=1) |
| |
| MatrixSparse * | extractSubmatrixByRanks (const 1 &rank_rows, const 1 &rank_cols) const |
| |
| MatrixSparse * | extractSubmatrixByColor (const 1 &colors, Id ref_color, bool row_ok, bool col_ok) |
| |
| | colorCoding () const |
| |
| Id | getNonZeros () const |
| |
| void | gibbs (Id iech, const 1 &zcur, double *yk, double *sk) |
| |
| Id | forwardLU (const 1 &b, 1 &x, bool flagLower=true) const |
| |
| void | forceDimension (Id maxRows, Id maxCols) |
| |
| | getNonZeroCols (Id irow) const |
| |
| | getNonZeroRows (Id icol) const |
| |
| void | setDiagonal (const Eigen::Map< const Eigen::VectorXd > &tab) |
| |
| void | setDiagonal (const constvect tab) |
| |
| MatrixSparse & | operator+= (double a) |
| |
| MatrixSparse & | operator-= (double a) |
| |
| MatrixSparse | operator+ (double a) const |
| |
| MatrixSparse | operator- (double a) const |
| |
| MatrixSparse & | operator*= (double a) |
| |
| MatrixSparse | operator* (double a) const |
| |
| MatrixSparse & | operator/= (double a) |
| |
| MatrixSparse | operator/ (double a) const |
| |
| const EigenSparseMatrix & | eigenMat () const |
| |
| EigenSparseMatrix & | 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 | isSquare (bool printWhyNot=false) const |
| |
| virtual bool | isSymmetric (double eps=EPSILON10, bool printWhyNot=false) const |
| |
| virtual bool | mustBeSymmetric () const |
| |
| virtual | getRow (Id irow) const |
| |
| virtual | getColumn (Id icol) const |
| |
| virtual void | reset (Id nrows, Id ncols) |
| |
| virtual void | transposeInPlace () |
| |
| double | prodVecMatVec (const 1 &x, const 1 &y) 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.) |
| |
| 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 |
| |
| | ASimulableMatrix () |
| |
| virtual | ~ASimulableMatrix () |
| |
| | ASimulable () |
| |
| | ASimulable (const ASimulable &m)=default |
| |
| ASimulable & | operator= (const ASimulable &m)=default |
| |
| | ASimulable (ASimulable &&m)=default |
| |
| ASimulable & | operator= (ASimulable &&m)=default |
| |
| virtual | ~ASimulable ()=default |
| |
| Id | evalSimulate (const 1 &whitenoise, 1 &outv) const |
| |
| | evalSimulate (const 1 &whitenoise) const |
| |
| | simulate () const |
| |
| Id | evalSimulate (const constvect whitenoise, vect result) const |
| |
| Id | addSimulateToDest (const constvect whitenoise, vect outv) const |
| |
| | ALinearOp () |
| |
| | ALinearOp (const ALinearOp &m)=default |
| |
| | ALinearOp (ALinearOp &&m)=default |
| |
| ALinearOp & | operator= (const ALinearOp &m)=default |
| |
| ALinearOp & | operator= (ALinearOp &&m)=default |
| |
| virtual | ~ALinearOp ()=default |
| |
| Id | evalDirect (const 1 &inv, 1 &outv) const |
| |
| | evalDirect (const 1 &in) const |
| |
| virtual void | multiplyByValueAndAddDiagonal (double v1=1., double v2=0.) const |
| |
| virtual void | resetModif () const |
| |
| void | setUseFactor (bool usefactor) |
| |
| Id | evalDirect (constvect inv, vect outv) const |
| |
| Id | addToDest (const constvect inv, vect outv) const |
| |
| Id | addToDest (const ::Eigen::VectorXd &inv, ::Eigen::VectorXd &outv) const |
| |
|
| static MatrixSparse * | createFromMatrix (const MatrixSparse &mat) |
| |
| static void | _addGeneral (MatrixSparse &res, const MatrixSparse &other, double cst) |
| |
| static void | _addGeneral (MatrixSparse &res, const MatrixSparse &other1, const MatrixSparse &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 (MatrixSparse &res, const MatrixSparse &other, double cst) |
| |
| static void | _prodGeneral (MatrixSparse &res, const MatrixSparse &other1, const MatrixSparse &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 (MatrixSparse &res, const MatrixSparse &other1, const MatrixSparse &other2, bool transpose1=false, bool transpose2=false) |
| |
| static void | _prodVecAddGeneral (1 &res, const MatrixSparse &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 MatrixSparse &other, const constvect &vec, bool transpose=false, bool flagInvert=false) |
| | Add the Product of a matrix by a vector.
|
| |
| static void | _prodnormGeneral (MatrixSparse &res, const MatrixSparse &a, const MatrixSparse &m=MatrixSparse(), bool transpose=false) |
| |
| static void | _prodnormGeneral (MatrixSparse &res, const MatrixSparse &a, const 1 &vec, bool transpose=false) |
| |
| static bool | _areIdenticalGeneral (const MatrixSparse &a, const MatrixSparse &b, bool verbose=false) |
| |
| static MatrixSparse * | createFromCopy (const MatrixSparse *mat) |
| |
| static MatrixSparse * | create (Id nrow, Id ncol) |
| |
| static MatrixSparse * | createFromTriplet (const NF_Triplet &NF_T, Id nrow=0, Id ncol=0, Id nrowmax=-1) |
| |
| static MatrixSparse * | createFillRandom (Id nrow, Id ncol, double zeroPercent=0.1, Id seed=143743) |
| |
| static MatrixDense * | createFromSparse (const MatrixSparse &mat) |
| |
| static MatrixSparse * | Identity (Id nrow, double value=1.) |
| |
| static MatrixSparse * | addMatMat (const MatrixSparse *x, const MatrixSparse *y, double cx=1., double cy=1.) |
| |
| static MatrixSparse * | diagVec (const 1 &vec) |
| |
| static MatrixSparse * | diagConstant (Id number, double value=1.) |
| |
| static MatrixSparse * | diagMat (MatrixSparse *A, Id oper_choice) |
| |
| static MatrixSparse * | glue (const MatrixSparse *A1, const MatrixSparse *A2, bool flagShiftRow, bool flagShiftCol) |
| |
| static void | glueInPlace (MatrixSparse *A1, const MatrixSparse *A2, bool flagShiftRow, bool flagShiftCol) |
| |
| static void | dumpElements (const String &title, Id ifrom, Id ito) |
| |
| 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.
|
| |
| | DECLARE_TOTL |
| | Has a specific implementation in the Target language.
|
| |