ergo
mat::Matrix< Treal > Class Template Reference

#include <Matrix.h>

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

Public Types

typedef Vector< Treal, Treal > VectorType
typedef Treal ElementType

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.
 ~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.
size_t sy_nnz () const
 Returns number of nonzeros in matrix including lower triangle elements.
size_t nvalues () const
 Returns number of stored values in matrix.
size_t sy_nvalues () const
 Returns number of stored values in matrix.
template<class Top>
Treal syAccumulateWith (Top &op)
template<class Top>
Treal geAccumulateWith (Top &op)
Treal maxAbsValue () const
void trSetElementsByRule (TRule &rule)
Public Member Functions inherited from mat::MatrixHierarchicBase< Treal, 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
 assert (row >=0)
Treal & operator[] (int index)
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.
Public Member Functions inherited from mat::MatrixHierarchicBase< Treal, Telement >
bool operator== (int k) const
const int & nScalarsRows () const
const int & nScalarsCols () const
const int & nrows () const
const int & ncols () const
Telement & operator ()(int row
 assert (row >=0)
 assert (col >=0)
 assert (row< nrows())
 assert (col< ncols())
const Telement & operator ()(int row
 assert (row >=0)
 assert (col >=0)
 assert (row< nrows())
 assert (col< ncols())
Telement & operator[] (int index)
Telement 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.

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
static const Treal ONE

Friends

class Vector< Treal, Treal >
class Vector< Treal, Telement >

Additional Inherited Members

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

Member Typedef Documentation

◆ ElementType

typedef Treal mat::Matrix< Treal, Treal >::ElementType

◆ VectorType

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

Constructor & Destructor Documentation

◆ Matrix()

◆ ~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]

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

◆ 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>
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

◆ frobThreshElementLevel()

◆ 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>
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

◆ 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, Treal >::is_zero(), and mat::MatrixHierarchicBase< Treal, Treal >::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>
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

◆ 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>
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, inch(), mat::left, Matrix(), and mat::unstable.

◆ symm()

◆ symToNosym()

◆ syRandom()

◆ syRandomZeroStructure()

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

◆ syrk()

◆ sySetElementsByRule()

template<class Treal>
template<typename TRule>
void mat::Matrix< Treal >::sySetElementsByRule ( TRule & rule)

◆ 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

◆ trSetElementsByRule()

void mat::Matrix< Treal, Treal >::trSetElementsByRule ( TRule & rule)
inline

◆ trsytriplemm()

◆ truncateAccordingToSparsityPattern()

◆ writeToFile()

◆ Vector< Treal, Telement >

friend class Vector< Treal, Treal >
friend

◆ 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
staticprivate

Referenced by readFromFile(), and writeToFile().

◆ ZERO

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

Referenced by readFromFile(), and writeToFile().


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