1.8.0
CCC
 
Loading...
Searching...
No Matches
gstlrn::ProjMatrix Class Reference

#include <ProjMatrix.hpp>

Inheritance diagram for gstlrn::ProjMatrix:
gstlrn::IProj gstlrn::MatrixSparse gstlrn::AMatrix gstlrn::ALinearOp gstlrn::AStringable gstlrn::ICloneable

Public Member Functions

 ProjMatrix ()
 
 ProjMatrix (const Db *db, const AMesh *a_mesh, Id rankZ=-1, bool verbose=false)
 
 ProjMatrix (const ProjMatrix &m)
 
 ProjMatrix (const MatrixSparse &m)
 
ProjMatrixoperator= (const ProjMatrix &m)
 
virtual ~ProjMatrix ()
 
String toString (const AStringFormat *strfmt=nullptr) const override
 Cloneable interface.
 
Id getNApex () const override
 
Id getNPoint () const override
 
void resetFromMeshAndDb (const Db *db, const AMesh *a_mesh, Id rankZ=-1, bool verbose=false)
 
void dumpVerticesUsed (Id npmax=-1) const
 
- Public Member Functions inherited from gstlrn::IProj
 IProj ()
 
virtual ~IProj ()
 
 point2mesh (const 1 &inv) const
 
 mesh2point (const 1 &inv) const
 
Id point2mesh (const 1 &inv, 1 &outv) const
 
Id mesh2point (const 1 &inv, 1 &outv) const
 
Id point2mesh (const constvect inv, vect out) const
 
Id mesh2point (const constvect inv, vect out) const
 
Id addMesh2point (const constvect inv, vect outv) const
 
Id addPoint2mesh (const constvect inv, vect outv) const
 
void mesh2point2mesh (const constvect inv, vect outv) const
 
void point2mesh2point (const constvect inv, vect outv) const
 
- Public Member Functions inherited from gstlrn::MatrixSparse
 MatrixSparse (Id nrow=0, Id ncol=0, Id ncolmax=-1)
 
 MatrixSparse (const MatrixSparse &m)
 
MatrixSparseoperator= (const MatrixSparse &m)
 
virtual ~MatrixSparse ()
 
Id getSize () const override
 Interface for ALinearOp.
 
bool isSparse () const override
 Interface for AMatrix.
 
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 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
 
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.
 
MatrixSparsetranspose () 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
 
NF_Triplet getMatrixToTriplet (Id shiftRow=0, Id shiftCol=0) const override
 
MatrixSparsegetRowAsMatrixSparse (Id irow, double coeff=1.) const
 
MatrixSparsegetColumnAsMatrixSparse (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 (Id seed=432432, double zeroPercent=0)
 
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)
 
MatrixSparseextractSubmatrixByRanks (const 1 &rank_rows, const 1 &rank_cols) const
 
MatrixSparseextractSubmatrixByColor (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)
 
void setDiagonal (const Eigen::Map< const Eigen::VectorXd > &tab)
 
void setDiagonal (const constvect tab)
 
const Eigen::SparseMatrix< double > & eigenMat () const
 
Eigen::SparseMatrix< double > & eigenMat ()
 
- Public Member Functions inherited from gstlrn::AMatrix
 AMatrix (Id nrow=0, Id ncol=0)
 
 AMatrix (const AMatrix &m)
 
AMatrixoperator= (const AMatrix &m)
 
virtual ~AMatrix ()
 
virtual bool isSquare (bool printWhyNot=false) const
 
virtual bool isSymmetric (double eps=EPSILON10, bool printWhyNot=false) const
 
virtual bool mustBeSymmetric () const
 
virtual void reset (Id nrows, Id ncols)
 
virtual void transposeInPlace ()
 
virtual getRow (Id irow) const
 
virtual getColumn (Id icol) 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)
 
- Public Member Functions inherited from gstlrn::AStringable
 AStringable ()
 
 AStringable (const AStringable &r)
 
AStringableoperator= (const AStringable &r)
 
virtual ~AStringable ()
 
virtual void display (const AStringFormat *strfmt=nullptr) const final
 
virtual void display (Id level) const final
 
- Public Member Functions inherited from gstlrn::ICloneable
 ICloneable ()
 
virtual ~ICloneable ()
 
virtual ICloneableclone () const =0
 
std::shared_ptr< ICloneablecloneShared () const
 
std::unique_ptr< ICloneablecloneUnique () const
 
- Public Member Functions inherited from gstlrn::ALinearOp
 ALinearOp ()
 
 ALinearOp (const ALinearOp &m)=delete
 
ALinearOpoperator= (const ALinearOp &m)=delete
 
virtual ~ALinearOp ()
 
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 Public Member Functions

static ProjMatrixcreate (const Db *db, const AMesh *a_mesh, Id rankZ=-1, bool verbose=false)
 
- Static Public Member Functions inherited from gstlrn::MatrixSparse
static MatrixSparsecreate (const MatrixSparse *mat)
 
static MatrixSparsecreate (Id nrow, Id ncol)
 
static MatrixSparsecreateFromTriplet (const NF_Triplet &NF_T, Id nrow=0, Id ncol=0, Id nrowmax=-1)
 
static MatrixSparseIdentity (Id nrow, double value=1.)
 
static MatrixSparseaddMatMat (const MatrixSparse *x, const MatrixSparse *y, double cx=1., double cy=1.)
 
static MatrixSparsediagVec (const 1 &vec)
 
static MatrixSparsediagConstant (Id number, double value=1.)
 
static MatrixSparsediagMat (MatrixSparse *A, Id oper_choice)
 
static MatrixSparseglue (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)
 

Public Attributes

 DECLARE_TOTL
 Has a specific implementation in the Target language.
 
- Public Attributes inherited from gstlrn::MatrixSparse
 DECLARE_TOTL
 Has a specific implementation in the Target language.
 

Constructor & Destructor Documentation

◆ ProjMatrix() [1/4]

gstlrn::ProjMatrix::ProjMatrix ( )

◆ ProjMatrix() [2/4]

gstlrn::ProjMatrix::ProjMatrix ( const Db db,
const AMesh a_mesh,
Id  rankZ = -1,
bool  verbose = false 
)

◆ ProjMatrix() [3/4]

gstlrn::ProjMatrix::ProjMatrix ( const ProjMatrix m)

◆ ProjMatrix() [4/4]

gstlrn::ProjMatrix::ProjMatrix ( const MatrixSparse m)

◆ ~ProjMatrix()

gstlrn::ProjMatrix::~ProjMatrix ( )
virtual

Member Function Documentation

◆ create()

ProjMatrix * gstlrn::ProjMatrix::create ( const Db db,
const AMesh a_mesh,
Id  rankZ = -1,
bool  verbose = false 
)
static

◆ dumpVerticesUsed()

void gstlrn::ProjMatrix::dumpVerticesUsed ( Id  npmax = -1) const

◆ getNApex()

Id gstlrn::ProjMatrix::getNApex ( ) const
inlineoverridevirtual

Implements gstlrn::IProj.

◆ getNPoint()

Id gstlrn::ProjMatrix::getNPoint ( ) const
inlineoverridevirtual

Implements gstlrn::IProj.

◆ operator=()

ProjMatrix & gstlrn::ProjMatrix::operator= ( const ProjMatrix m)

◆ resetFromMeshAndDb()

void gstlrn::ProjMatrix::resetFromMeshAndDb ( const Db db,
const AMesh a_mesh,
Id  rankZ = -1,
bool  verbose = false 
)

◆ toString()

String gstlrn::ProjMatrix::toString ( const AStringFormat strfmt = nullptr) const
overridevirtual

Cloneable interface.

Interface for AStringable

Reimplemented from gstlrn::MatrixSparse.

Member Data Documentation

◆ DECLARE_TOTL

gstlrn::ProjMatrix::DECLARE_TOTL

Has a specific implementation in the Target language.


The documentation for this class was generated from the following files: