ergo
mat::Matrix< Treal > Class Template Reference

#include <Matrix.h>

Inheritance diagram for mat::Matrix< Treal >:
mat::MatrixHierarchicBase< Treal >

Public Types

typedef Vector< Treal, Treal > VectorType
 

Public Member Functions

 Matrix ()
 
void allocate ()
 
void assignFromFull (std::vector< Treal > const &fullMat)
 
void fullMatrix (std::vector< Treal > &fullMat) const
 
void syFullMatrix (std::vector< Treal > &fullMat) const
 
void syUpTriFullMatrix (std::vector< Treal > &fullMat) const
 
void assignFromSparse (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values)
 
void assignFromSparse (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values, std::vector< int > const &indexes)
 
void addValues (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values)
 
void addValues (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values, std::vector< int > const &indexes)
 
void syAssignFromSparse (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values)
 
void syAddValues (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values)
 
void getValues (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > &values) const
 
void getValues (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > &values, std::vector< int > const &indexes) const
 
void syGetValues (std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > &values) const
 
void getAllValues (std::vector< int > &rowind, std::vector< int > &colind, std::vector< Treal > &values) const
 
void syGetAllValues (std::vector< int > &rowind, std::vector< int > &colind, std::vector< Treal > &values) const
 
Matrix< Treal > & operator= (const Matrix< Treal > &mat)
 
void clear ()
 Set matrix to zero and delete all arrays. More...
 
 ~Matrix ()
 
void writeToFile (std::ofstream &file) const
 
void readFromFile (std::ifstream &file)
 
void random ()
 
void syRandom ()
 
void randomZeroStructure (Treal probabilityBeingZero)
 
void syRandomZeroStructure (Treal probabilityBeingZero)
 
template<typename TRule >
void setElementsByRule (TRule &rule)
 
template<typename TRule >
void sySetElementsByRule (TRule &rule)
 
void addIdentity (Treal alpha)
 
void symToNosym ()
 
void nosymToSym ()
 
Matrix< Treal > & operator= (int const k)
 
Matrix< Treal > & operator*= (const Treal alpha)
 
Treal frob () const
 
Treal frobSquared () const
 
Treal syFrob () const
 
Treal syFrobSquared () const
 
Treal trace () const
 
void assign (Treal const alpha, Matrix< Treal > const &A)
 
void getFrobSqLowestLevel (std::vector< Treal > &frobsq) const
 
void frobThreshLowestLevel (Treal const threshold, Matrix< Treal > *ErrorMatrix)
 
void getFrobSqElementLevel (std::vector< Treal > &frobsq) const
 
void frobThreshElementLevel (Treal const threshold, Matrix< Treal > *ErrorMatrix)
 
void assignFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal > > const &A)
 
void syAssignFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal > > const &A)
 
void assignDiffFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal > > const &A, Matrix< Treal, Matrix< Treal > > const &B)
 
void syAssignDiffFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal > > const &A, Matrix< Treal, Matrix< Treal > > const &B)
 
void truncateAccordingToSparsityPattern (Matrix< Treal, Matrix< Treal > > &A) const
 
Treal frob_thresh (Treal const threshold, Matrix< Treal > *ErrorMatrix=0)
 
Treal frob_squared_thresh (Treal const threshold, Matrix< Treal > *ErrorMatrix=0)
 
void gershgorin (Treal &lmin, Treal &lmax) const
 
void sy_gershgorin (Treal &lmin, Treal &lmax) const
 
void add_abs_col_sums (Treal *abscolsums) const
 
void get_diagonal (Treal *diag) const
 
size_t memory_usage () const
 
size_t nnz () const
 Returns number of nonzeros in matrix. More...
 
size_t sy_nnz () const
 Returns number of nonzeros in matrix including lower triangle elements. More...
 
size_t nvalues () const
 Returns number of stored values in matrix. More...
 
size_t sy_nvalues () const
 Returns number of stored values in matrix. More...
 
template<class Top >
Treal syAccumulateWith (Top &op)
 
template<class Top >
Treal geAccumulateWith (Top &op)
 
Treal maxAbsValue () const
 
- Public Member Functions inherited from mat::MatrixHierarchicBase< Treal >
bool operator== (int k) const
 
const int & nScalarsRows () const
 
const int & nScalarsCols () const
 
const int & nrows () const
 
const int & ncols () const
 
Treal & operator ()(int row
 
const Treal & operator ()(int row
 
 assert (row >=0)
 
 assert (col >=0)
 
 assert (row< nrows())
 
 assert (col< ncols())
 
 assert (row >=0)
 
 assert (col >=0)
 
 assert (row< nrows())
 
 assert (col< ncols())
 
Treal & operator[] (int index)
 
Treal constoperator[] (int index) const
 
bool is_zero () const
 
int nElements () const
 
void resetRows (SizesAndBlocks const &newRows)
 
void resetCols (SizesAndBlocks const &newCols)
 
void getRows (SizesAndBlocks &rowsCopy) const
 
void getCols (SizesAndBlocks &colsCopy) const
 
bool highestLevel () const
 
bool is_empty () const
 Check if matrix is empty Empty is different from zero, a zero matrix contains information about blocksizes etc. More...
 

Static Public Member Functions

static void transpose (Matrix< Treal > const &A, Matrix< Treal > &AT)
 
static void gemm (const bool tA, const bool tB, const Treal alpha, const Matrix< Treal > &A, const Matrix< Treal > &B, const Treal beta, Matrix< Treal > &C)
 
static void symm (const char side, const char uplo, const Treal alpha, const Matrix< Treal > &A, const Matrix< Treal > &B, const Treal beta, Matrix< Treal > &C)
 
static void syrk (const char uplo, const bool tA, const Treal alpha, const Matrix< Treal > &A, const Treal beta, Matrix< Treal > &C)
 
static void sysq (const char uplo, const Treal alpha, const Matrix< Treal > &A, const Treal beta, Matrix< Treal > &C)
 
static void ssmm (const Treal alpha, const Matrix< Treal > &A, const Matrix< Treal > &B, const Treal beta, Matrix< Treal > &C)
 
static void ssmm_upper_tr_only (const Treal alpha, const Matrix< Treal > &A, const Matrix< Treal > &B, const Treal beta, Matrix< Treal > &C)
 
static void trmm (const char side, const char uplo, const bool tA, const Treal alpha, const Matrix< Treal > &A, Matrix< Treal > &B)
 
static Treal frobDiff (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static Treal frobSquaredDiff (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static Treal syFrobDiff (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static Treal syFrobSquaredDiff (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static Treal trace_ab (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static Treal trace_aTb (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static Treal sy_trace_ab (const Matrix< Treal > &A, const Matrix< Treal > &B)
 
static void add (const Treal alpha, const Matrix< Treal > &A, Matrix< Treal > &B)
 
static void gemm_upper_tr_only (const bool tA, const bool tB, const Treal alpha, const Matrix< Treal > &A, const Matrix< Treal > &B, const Treal beta, Matrix< Treal > &C)
 
static void sytr_upper_tr_only (char const side, const Treal alpha, Matrix< Treal > &A, const Matrix< Treal > &Z)
 
static void trmm_upper_tr_only (const char side, const char uplo, const bool tA, const Treal alpha, const Matrix< Treal > &A, Matrix< Treal > &B)
 
static void trsytriplemm (char const side, const Matrix< Treal > &Z, Matrix< Treal > &A)
 
static void inch (const Matrix< Treal > &A, Matrix< Treal > &Z, const Treal threshold=0, const side looking=left, const inchversion version=unstable)
 
static void syInch (const Matrix< Treal > &A, Matrix< Treal > &Z, const Treal threshold=0, const side looking=left, const inchversion version=unstable)
 
static unsigned int level ()
 

Static Private Attributes

static const Treal ZERO = 0
 
static const Treal ONE = 1
 

Friends

class Vector< Treal, Treal >
 

Additional Inherited Members

- Public Attributes inherited from mat::MatrixHierarchicBase< Treal >
Treal int col
 
return elements [row+col *nrows()]
 
const Treal int col const
 
- Protected Member Functions inherited from mat::MatrixHierarchicBase< Treal >
 MatrixHierarchicBase ()
 
 MatrixHierarchicBase (SizesAndBlocks const &rowsInp, SizesAndBlocks const &colsInp)
 
 MatrixHierarchicBase (const MatrixHierarchicBase< Treal, Treal > &mat)
 
MatrixHierarchicBase< Treal, Treal > & operator= (const MatrixHierarchicBase< Treal, Treal > &mat)
 
virtual ~MatrixHierarchicBase ()
 
- Static Protected Member Functions inherited from mat::MatrixHierarchicBase< Treal >
static void swap (MatrixHierarchicBase< Treal, Treal > &A, MatrixHierarchicBase< Treal, Treal > &B)
 
- Protected Attributes inherited from mat::MatrixHierarchicBase< Treal >
Treal * elements
 
SizesAndBlocks rows
 
SizesAndBlocks cols
 

Member Typedef Documentation

◆ VectorType

template<class Treal >
typedef Vector<Treal, Treal> mat::Matrix< Treal >::VectorType

Constructor & Destructor Documentation

◆ Matrix()

template<class Treal >
mat::Matrix< Treal >::Matrix ( )
inline

◆ ~Matrix()

template<class Treal >
mat::Matrix< Treal >::~Matrix ( )
inline

Member Function Documentation

◆ add()

template<class Treal >
void mat::Matrix< Treal >::add ( const Treal  alpha,
const Matrix< Treal > &  A,
Matrix< Treal > &  B 
)
static

◆ add_abs_col_sums()

◆ addIdentity()

◆ addValues() [1/2]

template<class Treal >
void mat::Matrix< Treal >::addValues ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > const values 
)

◆ addValues() [2/2]

template<class Treal >
void mat::Matrix< Treal >::addValues ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > const values,
std::vector< int > const indexes 
)

◆ allocate()

◆ assign()

◆ assignDiffFrobNormsLowestLevel()

◆ assignFrobNormsLowestLevel()

◆ assignFromFull()

◆ assignFromSparse() [1/2]

template<class Treal >
void mat::Matrix< Treal >::assignFromSparse ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > const values 
)

◆ assignFromSparse() [2/2]

◆ clear()

template<class Treal >
void mat::Matrix< Treal >::clear ( )

◆ frob()

template<class Treal >
Treal mat::Matrix< Treal >::frob ( ) const
inline

◆ frob_squared_thresh()

◆ frob_thresh()

template<class Treal >
Treal mat::Matrix< Treal >::frob_thresh ( Treal const  threshold,
Matrix< Treal > *  ErrorMatrix = 0 
)
inline

◆ frobDiff()

template<class Treal >
static Treal mat::Matrix< Treal >::frobDiff ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
inlinestatic

◆ frobSquared()

◆ frobSquaredDiff()

template<class Treal >
Treal mat::Matrix< Treal >::frobSquaredDiff ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
static

References A, and B.

◆ frobThreshElementLevel()

template<class Treal >
void mat::Matrix< Treal >::frobThreshElementLevel ( Treal const  threshold,
Matrix< Treal > *  ErrorMatrix 
)

◆ frobThreshLowestLevel()

template<class Treal >
void mat::Matrix< Treal >::frobThreshLowestLevel ( Treal const  threshold,
Matrix< Treal > *  ErrorMatrix 
)

◆ fullMatrix()

◆ geAccumulateWith()

◆ gemm()

◆ gemm_upper_tr_only()

template<class Treal >
void mat::Matrix< Treal >::gemm_upper_tr_only ( const bool  tA,
const bool  tB,
const Treal  alpha,
const Matrix< Treal > &  A,
const Matrix< Treal > &  B,
const Treal  beta,
Matrix< Treal > &  C 
)
static

◆ gershgorin()

◆ get_diagonal()

◆ getAllValues()

◆ getFrobSqElementLevel()

template<class Treal >
void mat::Matrix< Treal >::getFrobSqElementLevel ( std::vector< Treal > &  frobsq) const

◆ getFrobSqLowestLevel()

template<class Treal >
void mat::Matrix< Treal >::getFrobSqLowestLevel ( std::vector< Treal > &  frobsq) const

◆ getValues() [1/2]

template<class Treal >
void mat::Matrix< Treal >::getValues ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > &  values 
) const

◆ getValues() [2/2]

template<class Treal >
void mat::Matrix< Treal >::getValues ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > &  values,
std::vector< int > const indexes 
) const

◆ inch()

template<class Treal >
void mat::Matrix< Treal >::inch ( const Matrix< Treal > &  A,
Matrix< Treal > &  Z,
const Treal  threshold = 0,
const side  looking = left,
const inchversion  version = unstable 
)
static

◆ level()

template<class Treal >
static unsigned int mat::Matrix< Treal >::level ( )
inlinestatic

◆ maxAbsValue()

◆ memory_usage()

◆ nnz()

template<class Treal >
size_t mat::Matrix< Treal >::nnz ( ) const
inline

◆ nosymToSym()

◆ nvalues()

template<class Treal >
size_t mat::Matrix< Treal >::nvalues ( ) const
inline

Returns number of stored values in matrix.

Returns same number as nnz()

References mat::Matrix< Treal, Telement >::nnz().

◆ operator*=()

◆ operator=() [1/2]

template<class Treal >
Matrix<Treal>& mat::Matrix< Treal >::operator= ( const Matrix< Treal > &  mat)
inline

◆ operator=() [2/2]

◆ random()

◆ randomZeroStructure()

template<class Treal >
void mat::Matrix< Treal >::randomZeroStructure ( Treal  probabilityBeingZero)

◆ readFromFile()

◆ setElementsByRule()

◆ ssmm()

◆ ssmm_upper_tr_only()

template<class Treal >
void mat::Matrix< Treal >::ssmm_upper_tr_only ( const Treal  alpha,
const Matrix< Treal > &  A,
const Matrix< Treal > &  B,
const Treal  beta,
Matrix< Treal > &  C 
)
static

◆ sy_gershgorin()

template<class Treal >
void mat::Matrix< Treal >::sy_gershgorin ( Treal &  lmin,
Treal &  lmax 
) const
inline

References gershgorin(), and symToNosym().

◆ sy_nnz()

template<class Treal >
size_t mat::Matrix< Treal >::sy_nnz ( ) const
inline

Returns number of nonzeros in matrix including lower triangle elements.

References mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), and mat::MatrixHierarchicBase< Treal, Telement >::nElements().

◆ sy_nvalues()

◆ sy_trace_ab()

template<class Treal >
Treal mat::Matrix< Treal >::sy_trace_ab ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
static

◆ syAccumulateWith()

◆ syAddValues()

template<class Treal >
void mat::Matrix< Treal >::syAddValues ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > const values 
)

◆ syAssignDiffFrobNormsLowestLevel()

◆ syAssignFrobNormsLowestLevel()

◆ syAssignFromSparse()

template<class Treal >
void mat::Matrix< Treal >::syAssignFromSparse ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > const values 
)

◆ syFrob()

template<class Treal >
Treal mat::Matrix< Treal >::syFrob ( ) const
inline

◆ syFrobDiff()

template<class Treal >
static Treal mat::Matrix< Treal >::syFrobDiff ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
inlinestatic

◆ syFrobSquared()

◆ syFrobSquaredDiff()

template<class Treal >
Treal mat::Matrix< Treal >::syFrobSquaredDiff ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
static

References A, and B.

◆ syFullMatrix()

◆ syGetAllValues()

◆ syGetValues()

template<class Treal >
void mat::Matrix< Treal >::syGetValues ( std::vector< int > const rowind,
std::vector< int > const colind,
std::vector< Treal > &  values 
) const

◆ syInch()

template<class Treal >
static void mat::Matrix< Treal >::syInch ( const Matrix< Treal > &  A,
Matrix< Treal > &  Z,
const Treal  threshold = 0,
const side  looking = left,
const inchversion  version = unstable 
)
inlinestatic

References A.

◆ symm()

◆ symToNosym()

◆ syRandom()

◆ syRandomZeroStructure()

template<class Treal >
void mat::Matrix< Treal >::syRandomZeroStructure ( Treal  probabilityBeingZero)

◆ syrk()

◆ sySetElementsByRule()

◆ sysq()

◆ sytr_upper_tr_only()

template<class Treal >
void mat::Matrix< Treal >::sytr_upper_tr_only ( char const  side,
const Treal  alpha,
Matrix< Treal > &  A,
const Matrix< Treal > &  Z 
)
static

◆ syUpTriFullMatrix()

◆ trace()

◆ trace_ab()

template<class Treal >
Treal mat::Matrix< Treal >::trace_ab ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
static

◆ trace_aTb()

template<class Treal >
Treal mat::Matrix< Treal >::trace_aTb ( const Matrix< Treal > &  A,
const Matrix< Treal > &  B 
)
static

◆ transpose()

◆ trmm()

template<class Treal >
void mat::Matrix< Treal >::trmm ( const char  side,
const char  uplo,
const bool  tA,
const Treal  alpha,
const Matrix< Treal > &  A,
Matrix< Treal > &  B 
)
static

◆ trmm_upper_tr_only()

template<class Treal >
void mat::Matrix< Treal >::trmm_upper_tr_only ( const char  side,
const char  uplo,
const bool  tA,
const Treal  alpha,
const Matrix< Treal > &  A,
Matrix< Treal > &  B 
)
static

◆ trsytriplemm()

template<class Treal >
void mat::Matrix< Treal >::trsytriplemm ( char const  side,
const Matrix< Treal > &  Z,
Matrix< Treal > &  A 
)
static

◆ truncateAccordingToSparsityPattern()

◆ writeToFile()

Friends And Related Function Documentation

◆ Vector< Treal, Treal >

template<class Treal >
friend class Vector< Treal, Treal >
friend

Member Data Documentation

◆ ONE

template<class Treal >
const Treal mat::Matrix< Treal >::ONE = 1
staticprivate

◆ ZERO

template<class Treal >
const Treal mat::Matrix< Treal >::ZERO = 0
staticprivate

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