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

#include <MatrixSparse.hpp>

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

Detailed Description

Sparse Matrix

Handle a sparse matrix that can be symmetrical, square or not. Storage relies on Eigen3 Library. Storage relies on Eigen3 Library.

Public Member Functions

 MatrixSparse (Id nrow=0, Id ncol=0, Id ncolmax=-1)
 
 MatrixSparse (const MatrixSparse &m)
 
MatrixSparseoperator= (const MatrixSparse &m)
 
virtual ~MatrixSparse ()
 
String toString (const AStringFormat *strfmt=nullptr) const override
 Cloneable interface.
 
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 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.
 

Constructor & Destructor Documentation

◆ MatrixSparse() [1/2]

gstlrn::MatrixSparse::MatrixSparse ( Id  nrow = 0,
Id  ncol = 0,
Id  ncolmax = -1 
)

◆ MatrixSparse() [2/2]

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

◆ ~MatrixSparse()

gstlrn::MatrixSparse::~MatrixSparse ( )
virtual

Member Function Documentation

◆ addMat()

void gstlrn::MatrixSparse::addMat ( const AMatrix y,
double  cx = 1.,
double  cy = 1. 
)
overridevirtual

Add a matrix (multiplied by a constant)

Updates the current Matrix as a linear combination of matrices as follows: this <- cx * this + cy * y

Parameters
cxCoefficient applied to the current Matrix
cyCoefficient applied to the Matrix 'y'
ySecond Matrix in the Linear combination

Reimplemented from gstlrn::AMatrix.

◆ addMatMat()

MatrixSparse * gstlrn::MatrixSparse::addMatMat ( const MatrixSparse x,
const MatrixSparse y,
double  cx = 1.,
double  cy = 1. 
)
static

◆ addScalar()

void gstlrn::MatrixSparse::addScalar ( double  v)
overridevirtual

Add a value to each matrix component

Parameters
vAdd a scalar value to all terms of the current matrix

Implements gstlrn::AMatrix.

◆ addScalarDiag()

void gstlrn::MatrixSparse::addScalarDiag ( double  v)
overridevirtual

Add value to matrix diagonal

Parameters
vAdd constant value to the diagonal of the current Matrix

Implements gstlrn::AMatrix.

◆ addValue()

void gstlrn::MatrixSparse::addValue ( Id  row,
Id  col,
double  value 
)

◆ addVecInPlace()

Id gstlrn::MatrixSparse::addVecInPlace ( const constvect  x,
vect  y 
) const

◆ addVecInPlaceEigen()

Id gstlrn::MatrixSparse::addVecInPlaceEigen ( const Eigen::Map< const Eigen::VectorXd > &  xm,
Eigen::Map< Eigen::VectorXd > &  ym 
) const

◆ addVecInPlaceVD()

Id gstlrn::MatrixSparse::addVecInPlaceVD ( const 1 &  x,
1 &  y 
) const

◆ colorCoding()

gstlrn::MatrixSparse::colorCoding ( ) const

◆ create() [1/2]

MatrixSparse * gstlrn::MatrixSparse::create ( const MatrixSparse mat)
static

◆ create() [2/2]

MatrixSparse * gstlrn::MatrixSparse::create ( Id  nrow,
Id  ncol 
)
static

◆ createFromTriplet()

MatrixSparse * gstlrn::MatrixSparse::createFromTriplet ( const NF_Triplet NF_T,
Id  nrow = 0,
Id  ncol = 0,
Id  nrowmax = -1 
)
static

◆ diagConstant()

MatrixSparse * gstlrn::MatrixSparse::diagConstant ( Id  number,
double  value = 1. 
)
static

◆ diagMat()

MatrixSparse * gstlrn::MatrixSparse::diagMat ( MatrixSparse A,
Id  oper_choice 
)
static

Construct a sparse matrix with the diagonal of 'A', where each element is transformed

Parameters
AInput sparse matrix
oper_choiceOperation on the diagonal term (see Utilities::operate_XXX)
Returns

◆ diagVec()

MatrixSparse * gstlrn::MatrixSparse::diagVec ( const 1 &  vec)
static

◆ divideColumn()

void gstlrn::MatrixSparse::divideColumn ( const 1 &  vec)
overridevirtual

Divide the matrix column-wise

Divide a Matrix column-wise

Implements gstlrn::AMatrix.

◆ divideRow()

void gstlrn::MatrixSparse::divideRow ( const 1 &  vec)
overridevirtual

Divide the matrix row-wise

Divide a Matrix row-wise

Implements gstlrn::AMatrix.

◆ dumpElements()

void gstlrn::MatrixSparse::dumpElements ( const String title,
Id  ifrom,
Id  ito 
)
static

Dump a specific range of samples from the internal storage

◆ eigenMat() [1/2]

Eigen::SparseMatrix< double > & gstlrn::MatrixSparse::eigenMat ( )
inline

◆ eigenMat() [2/2]

const Eigen::SparseMatrix< double > & gstlrn::MatrixSparse::eigenMat ( ) const
inline

◆ extractDiag()

gstlrn::MatrixSparse::extractDiag ( Id  oper_choice = 1) const

◆ extractSubmatrixByColor()

MatrixSparse * gstlrn::MatrixSparse::extractSubmatrixByColor ( const 1 &  colors,
Id  ref_color,
bool  row_ok,
bool  col_ok 
)

◆ extractSubmatrixByRanks()

MatrixSparse * gstlrn::MatrixSparse::extractSubmatrixByRanks ( const 1 &  rank_rows,
const 1 &  rank_cols 
) const

◆ fill()

void gstlrn::MatrixSparse::fill ( double  value)
overridevirtual

Set all the values of the matrix at once

Parameters
valueConstant value used for filling 'this'

Implements gstlrn::AMatrix.

◆ fillRandom()

void gstlrn::MatrixSparse::fillRandom ( Id  seed = 432432,
double  zeroPercent = 0 
)

Set all the values of the Matrix with random values

◆ forceDimension()

void gstlrn::MatrixSparse::forceDimension ( Id  maxRows,
Id  maxCols 
)

◆ forwardLU()

Id gstlrn::MatrixSparse::forwardLU ( const 1 &  b,
1 &  x,
bool  flagLower = true 
) const

◆ getColumnAsMatrixSparse()

MatrixSparse * gstlrn::MatrixSparse::getColumnAsMatrixSparse ( Id  icol,
double  coeff = 1. 
) const

Extract a Column

◆ getMatrixToTriplet()

NF_Triplet gstlrn::MatrixSparse::getMatrixToTriplet ( Id  shiftRow = 0,
Id  shiftCol = 0 
) const
overridevirtual

Extract the contents of the matrix

From a matrix of any type, creates the triplet (specific format for creating efficiently a Sparse matrix) It only takes the only non-zero elements of the matrix

Reimplemented from gstlrn::AMatrix.

◆ getNonZeros()

Id gstlrn::MatrixSparse::getNonZeros ( ) const
inline

◆ getRowAsMatrixSparse()

MatrixSparse * gstlrn::MatrixSparse::getRowAsMatrixSparse ( Id  irow,
double  coeff = 1. 
) const

Extract a Row

◆ getSize()

Id gstlrn::MatrixSparse::getSize ( ) const
inlineoverridevirtual

Interface for ALinearOp.

Implements gstlrn::ALinearOp.

◆ getStats()

void gstlrn::MatrixSparse::getStats ( Id nrows,
Id ncols,
Id count,
double *  percent 
) const

◆ getValue()

double gstlrn::MatrixSparse::getValue ( Id  row,
Id  col 
) const
overridevirtual

Get the value from a matrix cell

Implements gstlrn::AMatrix.

◆ gibbs()

void gstlrn::MatrixSparse::gibbs ( Id  iech,
const 1 &  zcur,
double *  yk,
double *  sk 
)

◆ glue()

MatrixSparse * gstlrn::MatrixSparse::glue ( const MatrixSparse A1,
const MatrixSparse A2,
bool  flagShiftRow,
bool  flagShiftCol 
)
static

◆ glueInPlace()

void gstlrn::MatrixSparse::glueInPlace ( MatrixSparse A1,
const MatrixSparse A2,
bool  flagShiftRow,
bool  flagShiftCol 
)
static

◆ Identity()

MatrixSparse * gstlrn::MatrixSparse::Identity ( Id  nrow,
double  value = 1. 
)
static

◆ isDense()

bool gstlrn::MatrixSparse::isDense ( ) const
inlineoverridevirtual

Returns if the matrix belongs to the MatrixSparse class (avoids dynamic_cast)

Implements gstlrn::AMatrix.

◆ isSparse()

bool gstlrn::MatrixSparse::isSparse ( ) const
inlineoverridevirtual

Interface for AMatrix.

Returns if the current matrix is Sparse

Implements gstlrn::AMatrix.

◆ L1Norm()

double gstlrn::MatrixSparse::L1Norm ( ) const

◆ linearCombination()

void gstlrn::MatrixSparse::linearCombination ( double  val1,
const AMatrix mat1,
double  val2 = 1.,
const AMatrix mat2 = nullptr,
double  val3 = 1.,
const AMatrix mat3 = nullptr 
)
overridevirtual

Perform 'this' = 'val1' * 'mat1' + 'val2' * 'mat2' + 'val3' * 'mat3'

Reimplemented from gstlrn::AMatrix.

◆ multiplyColumn()

void gstlrn::MatrixSparse::multiplyColumn ( const 1 &  vec)
overridevirtual

Multiply the matrix column-wise

Multiply a Matrix column-wise

Implements gstlrn::AMatrix.

◆ multiplyRow()

void gstlrn::MatrixSparse::multiplyRow ( const 1 &  vec)
overridevirtual

Multiply the matrix row-wise

Multiply a Matrix row-wise

Implements gstlrn::AMatrix.

◆ operator=()

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

◆ prodMatMatInPlace()

void gstlrn::MatrixSparse::prodMatMatInPlace ( const AMatrix x,
const AMatrix y,
bool  transposeX = false,
bool  transposeY = false 
)
overridevirtual

Multiply matrix 'x' by matrix 'y' and store the result in 'this'

Store the product of 'x' by 'y' in this

Parameters
xFirst Matrix
ySecond matrix
transposeXTrue if First matrix is transposed
transposeYTrue if Second matrix is transposed

Reimplemented from gstlrn::AMatrix.

◆ prodNormDiagVecInPlace()

void gstlrn::MatrixSparse::prodNormDiagVecInPlace ( const 1 &  vec,
Id  oper_choice = 1 
)

Perform: 'this' = diag('vec') %*% 'A' %*% diag('vec')

Parameters
vecInput Vector
oper_choiceType of transformation

◆ prodNormMatInPlace()

void gstlrn::MatrixSparse::prodNormMatInPlace ( const AMatrix a,
bool  transpose = false 
)
overridevirtual

Perform 'this' = 't(A)' %*% 'A' or 'A' %*% 't(A)'

Reimplemented from gstlrn::AMatrix.

◆ prodNormMatMatInPlace()

void gstlrn::MatrixSparse::prodNormMatMatInPlace ( const AMatrix a,
const AMatrix m,
bool  transpose = false 
)
overridevirtual

Perform 'this' = 't(A)' %*% 'M' %*% 'A' or 'A' %*% 'M' %*% 't(A)'

Reimplemented from gstlrn::AMatrix.

◆ prodNormMatVecInPlace()

void gstlrn::MatrixSparse::prodNormMatVecInPlace ( const AMatrix a,
const 1 &  vec,
bool  transpose = false 
)
overridevirtual

Perform 'this' = 't(A)' %*% ['vec'] %*% 'A' or 'A' %*% ['vec'] %*% 't(A)'

Reimplemented from gstlrn::AMatrix.

◆ prodScalar()

void gstlrn::MatrixSparse::prodScalar ( double  v)
overridevirtual

Multiply each matrix component by a value

Parameters
vMultiply all the terms of the matrix by the scalar 'v'

Implements gstlrn::AMatrix.

◆ resetFromArray()

void gstlrn::MatrixSparse::resetFromArray ( Id  nrows,
Id  ncols,
const double *  tab,
bool  byCol = true 
)
overridevirtual

Reset the matrix from an array of double values.

Parameters
nrowsNew number of rows
ncolsNew number of columns
tabThe array of values
byColTrue if values are column-major in the array

Reimplemented from gstlrn::AMatrix.

◆ resetFromTriplet()

void gstlrn::MatrixSparse::resetFromTriplet ( const NF_Triplet NF_T)

◆ resetFromValue()

void gstlrn::MatrixSparse::resetFromValue ( Id  nrows,
Id  ncols,
double  value 
)
overridevirtual

Reset the matrix to new dimensions and fill with a new value.

Parameters
nrowsNew number of rows
ncolsNew number of columns
valueThe new value used to fill the matrix

Reimplemented from gstlrn::AMatrix.

◆ resetFromVD()

void gstlrn::MatrixSparse::resetFromVD ( Id  nrows,
Id  ncols,
const 1 &  tab,
bool  byCol = true 
)
overridevirtual

Reset the matrix from a vector of double values.

Parameters
nrowsNew number of rows
ncolsNew number of columns
tabThe vector of values
byColTrue if values are column-major in the vector

Reimplemented from gstlrn::AMatrix.

◆ resetFromVVD()

void gstlrn::MatrixSparse::resetFromVVD ( const 1 &  tab,
bool  byCol = true 
)
overridevirtual

Reset the matrix from an array of double values.

Parameters
tabThe array of values
byColTrue if values are column-major in the array

Reimplemented from gstlrn::AMatrix.

◆ scaleByDiag()

Id gstlrn::MatrixSparse::scaleByDiag ( )

◆ setColumn()

void gstlrn::MatrixSparse::setColumn ( Id  icol,
const 1 &  tab 
)
overridevirtual

Set the contents of a Column

Fill a column of an already existing Sparse matrix, using 'tab' as entry The input 'tab' corresponds to the whole column contents

Parameters
icolColumn rank
tabVector containing the information (Dimension: nrows)

Implements gstlrn::AMatrix.

◆ setColumnToConstant()

void gstlrn::MatrixSparse::setColumnToConstant ( Id  icol,
double  value 
)
overridevirtual

Set the contents of a Column to a constant

Implements gstlrn::AMatrix.

◆ setConstant()

void gstlrn::MatrixSparse::setConstant ( double  value)

◆ setDiagonal() [1/3]

void gstlrn::MatrixSparse::setDiagonal ( const 1 &  tab)
overridevirtual

Set the contents of the (main) Diagonal

Implements gstlrn::AMatrix.

◆ setDiagonal() [2/3]

void gstlrn::MatrixSparse::setDiagonal ( const constvect  tab)

◆ setDiagonal() [3/3]

void gstlrn::MatrixSparse::setDiagonal ( const Eigen::Map< const Eigen::VectorXd > &  tab)

◆ setDiagonalToConstant()

void gstlrn::MatrixSparse::setDiagonalToConstant ( double  value = 1.)
overridevirtual

Set the contents of the (main) Diagonal to a constant value

Implements gstlrn::AMatrix.

◆ setRow()

void gstlrn::MatrixSparse::setRow ( Id  irow,
const 1 &  tab 
)
overridevirtual

Set the contents of a Row

Fill a row of an already existing Sparse matrix, using 'tab' as entry The input 'tab' corresponds to the whole row contents

Parameters
irowRow rank
tabVector containing the information (Dimension: ncols)
Warning
: This method only copies the values at the non-zero existing entries

Implements gstlrn::AMatrix.

◆ setRowToConstant()

void gstlrn::MatrixSparse::setRowToConstant ( Id  irow,
double  value 
)
overridevirtual

Set the contents of a Row to a constant

Implements gstlrn::AMatrix.

◆ setValue()

void gstlrn::MatrixSparse::setValue ( Id  irow,
Id  icol,
double  value 
)
overridevirtual

Set the value for a matrix cell

Implements gstlrn::AMatrix.

◆ toString()

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

Cloneable interface.

Reimplemented from gstlrn::AMatrix.

Reimplemented in gstlrn::ProjMatrix.

◆ transpose()

MatrixSparse * gstlrn::MatrixSparse::transpose ( ) const
overridevirtual

Transpose the matrix and return it as a copy

Reimplemented from gstlrn::AMatrix.

◆ updValue()

void gstlrn::MatrixSparse::updValue ( Id  irow,
Id  icol,
const EOperator &  oper,
double  value 
)
overridevirtual

Modifies the contents of a matrix cell

Implements gstlrn::AMatrix.

Member Data Documentation

◆ DECLARE_TOTL

gstlrn::MatrixSparse::DECLARE_TOTL

Has a specific implementation in the Target language.


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