ergo
mat::Matrix< Treal, Telement > Class Template Reference

Matrix class and heart of the matrix library. More...

#include <Matrix.h>

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

Public Types

typedef Telement ElementType
 
typedef Vector< Treal, typename ElementType::VectorType > 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 > &, 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 > &) const
 
void syGetAllValues (std::vector< int > &rowind, std::vector< int > &colind, std::vector< Treal > &) const
 
Matrix< Treal, Telement > & operator= (const Matrix< Treal, Telement > &mat)
 
void clear ()
 
 ~Matrix ()
 
void writeToFile (std::ofstream &file) const
 
void readFromFile (std::ifstream &file)
 
void random ()
 
void syRandom ()
 
void randomZeroStructure (Treal probabilityBeingZero)
 Get a random zero structure with a specified probability that each submatrix is zero. More...
 
void syRandomZeroStructure (Treal probabilityBeingZero)
 
template<typename TRule >
void setElementsByRule (TRule &rule)
 
template<typename TRule >
void sySetElementsByRule (TRule &rule)
 
template<typename TRule >
void trSetElementsByRule (TRule &rule)
 
void addIdentity (Treal alpha)
 
void symToNosym ()
 
void nosymToSym ()
 
Matrix< Treal, Telement > & operator= (int const k)
 
Matrix< Treal, Telement > & 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, Telement > const &A)
 
void getFrobSqLowestLevel (std::vector< Treal > &frobsq) const
 
void frobThreshLowestLevel (Treal const threshold, Matrix< Treal, Telement > *ErrorMatrix)
 
void getFrobSqElementLevel (std::vector< Treal > &frobsq) const
 
void frobThreshElementLevel (Treal const threshold, Matrix< Treal, Telement > *ErrorMatrix)
 
void assignFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal, Telement > > const &A)
 Build a matrix with single matrix elements at the lowest level containing the Frobenius norms of the submatrices of A. More...
 
void syAssignFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal, Telement > > const &A)
 Version of assignFrobNormsLowestLevelToMatrix for symmetric matrices. More...
 
void assignDiffFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal, Telement > > const &A, Matrix< Treal, Matrix< Treal, Telement > > const &B)
 Same as assignFrobNormsLowestLevel except that the Frobenius norms of the differences between submatrices of A and B are assigned. More...
 
void syAssignDiffFrobNormsLowestLevel (Matrix< Treal, Matrix< Treal, Telement > > const &A, Matrix< Treal, Matrix< Treal, Telement > > const &B)
 Same as syAssignFrobNormsLowestLevel except that the Frobenius norms of the differences between submatrices of A and B are assigned. More...
 
void truncateAccordingToSparsityPattern (Matrix< Treal, Matrix< Treal, Telement > > &A) const
 Truncate matrix A according to the sparsity pattern of the this matrix (frobNormMat). More...
 
Treal frob_thresh (Treal const threshold, Matrix< Treal, Telement > *ErrorMatrix=0)
 Removes small elements so that the introduced error is smaller than the threshold in the Frobenius norm Returns the Frobenius norm of the introduced error. More...
 
Treal frob_squared_thresh (Treal const threshold, Matrix< Treal, Telement > *ErrorMatrix=0)
 Removes small elements so that the introduced error is smaller than threshold in the squared Frobenius norm, returns squared frobenius norm of the introduced error added to ErrorMatrix. More...
 
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<typename Top >
Treal syAccumulateWith (Top &op)
 
template<typename Top >
Treal geAccumulateWith (Top &op)
 Accumulation algorithm for general matrices. More...
 
Treal maxAbsValue () const
 
- 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
 
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, Telement > const &A, Matrix< Treal, Telement > &AT)
 
static void gemm (const bool tA, const bool tB, const Treal alpha, const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B, const Treal beta, Matrix< Treal, Telement > &C)
 
static void symm (const char side, const char uplo, const Treal alpha, const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B, const Treal beta, Matrix< Treal, Telement > &C)
 
static void syrk (const char uplo, const bool tA, const Treal alpha, const Matrix< Treal, Telement > &A, const Treal beta, Matrix< Treal, Telement > &C)
 
static void sysq (const char uplo, const Treal alpha, const Matrix< Treal, Telement > &A, const Treal beta, Matrix< Treal, Telement > &C)
 
static void ssmm (const Treal alpha, const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B, const Treal beta, Matrix< Treal, Telement > &C)
 
static void ssmm_upper_tr_only (const Treal alpha, const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B, const Treal beta, Matrix< Treal, Telement > &C)
 
static void trmm (const char side, const char uplo, const bool tA, const Treal alpha, const Matrix< Treal, Telement > &A, Matrix< Treal, Telement > &B)
 
static Treal frobDiff (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static Treal frobSquaredDiff (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static Treal syFrobDiff (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static Treal syFrobSquaredDiff (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static Treal trace_ab (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static Treal trace_aTb (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static Treal sy_trace_ab (const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B)
 
static void add (const Treal alpha, const Matrix< Treal, Telement > &A, Matrix< Treal, Telement > &B)
 
static void gemm_upper_tr_only (const bool tA, const bool tB, const Treal alpha, const Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &B, const Treal beta, Matrix< Treal, Telement > &C)
 
static void sytr_upper_tr_only (char const side, const Treal alpha, Matrix< Treal, Telement > &A, const Matrix< Treal, Telement > &Z)
 
static void trmm_upper_tr_only (const char side, const char uplo, const bool tA, const Treal alpha, const Matrix< Treal, Telement > &A, Matrix< Treal, Telement > &B)
 
static void trsytriplemm (char const side, const Matrix< Treal, Telement > &Z, Matrix< Treal, Telement > &A)
 
static void syInch (const Matrix< Treal, Telement > &A, Matrix< Treal, Telement > &Z, const Treal threshold=0, const side looking=left, const inchversion version=unstable)
 
static unsigned int level ()
 

Friends

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
 
- Protected Member Functions inherited from mat::MatrixHierarchicBase< Treal, 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, Treal >
static void swap (MatrixHierarchicBase< Treal, Treal > &A, MatrixHierarchicBase< Treal, Treal > &B)
 
- Protected Attributes inherited from mat::MatrixHierarchicBase< Treal, Treal >
Treal * elements
 
SizesAndBlocks rows
 
SizesAndBlocks cols
 

Detailed Description

template<class Treal, class Telement = Treal>
class mat::Matrix< Treal, Telement >

Matrix class and heart of the matrix library.

This class is used to obtain the hierarchic data structure.

See also
MatrixHierarchicBase
Permutation

Member Typedef Documentation

◆ ElementType

template<class Treal , class Telement = Treal>
typedef Telement mat::Matrix< Treal, Telement >::ElementType

◆ VectorType

template<class Treal , class Telement = Treal>
typedef Vector<Treal, typename ElementType::VectorType> mat::Matrix< Treal, Telement >::VectorType

Constructor & Destructor Documentation

◆ Matrix()

template<class Treal , class Telement = Treal>
mat::Matrix< Treal, Telement >::Matrix ( )
inline

◆ ~Matrix()

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

Member Function Documentation

◆ add()

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

◆ add_abs_col_sums()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::add_abs_col_sums ( Treal *  abscolsums) const

◆ addIdentity()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::addIdentity ( Treal  alpha)

◆ addValues() [1/2]

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

◆ addValues() [2/2]

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

◆ allocate()

template<class Treal , class Telement = Treal>
void mat::Matrix< Treal, Telement >::allocate ( )
inline

References mat::SingletonForTimings::addTime(), mat::MatrixHierarchicBase< Treal, Treal >::assert(), mat::MatrixHierarchicBase< Treal, Treal >::col, mat::MatrixHierarchicBase< Treal, Treal >::cols, mat::MatrixHierarchicBase< Treal, Treal >::elements, mat::SizesAndBlocks::getNBlocks(), mat::SizesAndBlocks::getSizesAndBlocksForLowerLevel(), mat::SingletonForTimings::instance(), mat::MatrixHierarchicBase< Treal, Treal >::is_empty(), mat::MatrixHierarchicBase< Treal, Treal >::is_zero(), mat::MatrixHierarchicBase< Treal, Treal >::nElements(), mat::MatrixHierarchicBase< Treal, Treal >::resetCols(), mat::MatrixHierarchicBase< Treal, Treal >::resetRows(), mat::MatrixHierarchicBase< Treal, Treal >::rows, mat::Time::tic(), and mat::Time::toc().

Referenced by mat::Matrix< Treal >::addIdentity(), mat::Matrix< Treal >::addValues(), mat::Matrix< Treal >::assignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::assignFrobNormsLowestLevel(), mat::Matrix< Treal >::assignFromFull(), mat::Matrix< Treal >::assignFromSparse(), mat::Matrix< Treal >::frobThreshElementLevel(), mat::Matrix< Treal, Telement >::frobThreshElementLevel(), mat::Matrix< Treal, Telement >::frobThreshLowestLevel(), mat::Matrix< Treal, Telement >::gemm(), mat::Matrix< Treal, Telement >::gemm_upper_tr_only(), mat::Matrix< Treal >::operator=(), mat::Matrix< Treal >::random(), mat::Matrix< Treal >::readFromFile(), mat::Matrix< Treal >::setElementsByRule(), mat::Matrix< Treal, Telement >::ssmm(), mat::Matrix< Treal, Telement >::ssmm_upper_tr_only(), mat::Matrix< Treal >::syAssignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::syAssignFrobNormsLowestLevel(), mat::Matrix< Treal, Telement >::syInch(), mat::Matrix< Treal, Telement >::symm(), mat::Matrix< Treal >::syRandom(), mat::Matrix< Treal, Telement >::syrk(), mat::Matrix< Treal >::sySetElementsByRule(), and mat::Matrix< Treal, Telement >::sysq().

◆ assign()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::assign ( Treal const  alpha,
Matrix< Treal, Telement > const A 
)

◆ assignDiffFrobNormsLowestLevel()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::assignDiffFrobNormsLowestLevel ( Matrix< Treal, Matrix< Treal, Telement > > const A,
Matrix< Treal, Matrix< Treal, Telement > > const B 
)

Same as assignFrobNormsLowestLevel except that the Frobenius norms of the differences between submatrices of A and B are assigned.


References A, and B.

◆ assignFrobNormsLowestLevel()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::assignFrobNormsLowestLevel ( Matrix< Treal, Matrix< Treal, Telement > > const A)

Build a matrix with single matrix elements at the lowest level containing the Frobenius norms of the submatrices of A.

References A.

Referenced by mat::Matrix< Treal >::assignDiffFrobNormsLowestLevel().

◆ assignFromFull()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::assignFromFull ( std::vector< Treal > const fullMat)

◆ assignFromSparse() [1/2]

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

◆ assignFromSparse() [2/2]

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::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 , class Telement = Treal>
Treal mat::Matrix< Treal, Telement >::frob ( ) const
inline

◆ frob_squared_thresh()

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

Removes small elements so that the introduced error is smaller than threshold in the squared Frobenius norm, returns squared frobenius norm of the introduced error added to ErrorMatrix.

References cols, mat::MatrixHierarchicBase< Treal, Treal >::is_empty(), mat::MatrixHierarchicBase< Treal, Treal >::resetCols(), mat::MatrixHierarchicBase< Treal, Treal >::resetRows(), rows, and mat::MatrixHierarchicBase< Treal, Treal >::swap().

Referenced by mat::Matrix< Treal >::frob_thresh(), and mat::Matrix< Treal, Telement >::frob_thresh().

◆ frob_thresh()

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

Removes small elements so that the introduced error is smaller than the threshold in the Frobenius norm Returns the Frobenius norm of the introduced error.


References mat::Matrix< Treal, Telement >::frob_squared_thresh(), and template_blas_sqrt().

Referenced by mat::Matrix< Treal, Telement >::syInch().

◆ frobDiff()

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

◆ frobSquared()

◆ frobSquaredDiff()

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

◆ frobThreshElementLevel()

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

◆ frobThreshLowestLevel()

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

◆ fullMatrix()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::fullMatrix ( std::vector< Treal > &  fullMat) const

◆ geAccumulateWith()

template<class Treal , class Telement = Treal>
template<typename Top >
Treal mat::Matrix< Treal, Telement >::geAccumulateWith ( Top &  op)
inline

◆ gemm()

◆ gemm_upper_tr_only()

◆ gershgorin()

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

◆ get_diagonal()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::get_diagonal ( Treal *  diag) const

◆ getAllValues()

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

◆ getFrobSqElementLevel()

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

◆ getFrobSqLowestLevel()

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

◆ getValues() [1/2]

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

◆ getValues() [2/2]

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

◆ level()

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

◆ maxAbsValue()

template<class Treal , class Telement = Treal>
Treal mat::Matrix< Treal, Telement >::maxAbsValue ( ) const
inline

◆ memory_usage()

template<class Treal , class Telement >
size_t mat::Matrix< Treal, Telement >::memory_usage

◆ nnz()

template<class Treal , class Telement >
size_t mat::Matrix< Treal, Telement >::nnz

Returns number of nonzeros in matrix.

Referenced by mat::Matrix< Treal, Telement >::nvalues(), and mat::Matrix< Treal >::nvalues().

◆ nosymToSym()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::nosymToSym

◆ nvalues()

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

Returns number of stored values in matrix.

Returns same number as nnz()

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

◆ operator*=()

template<class Treal , class Telement >
Matrix< Treal, Telement > & mat::Matrix< Treal, Telement >::operator*= ( const Treal  alpha)

◆ operator=() [1/2]

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

◆ operator=() [2/2]

template<class Treal , class Telement >
Matrix< Treal, Telement > & mat::Matrix< Treal, Telement >::operator= ( int const  k)

◆ random()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::random

◆ randomZeroStructure()

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

Get a random zero structure with a specified probability that each submatrix is zero.

◆ readFromFile()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::readFromFile ( std::ifstream &  file)

◆ setElementsByRule()

template<class Treal , class Telement >
template<typename TRule >
void mat::Matrix< Treal, Telement >::setElementsByRule ( TRule &  rule)

◆ ssmm()

◆ ssmm_upper_tr_only()

◆ sy_gershgorin()

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

◆ sy_nnz()

template<class Treal , class Telement >
size_t mat::Matrix< Treal, Telement >::sy_nnz

Returns number of nonzeros in matrix including lower triangle elements.

◆ sy_nvalues()

template<class Treal , class Telement >
size_t mat::Matrix< Treal, Telement >::sy_nvalues

Returns number of stored values in matrix.

Lower triangle is not included. Lower triangle in diagonal submatrices is not included as well. Different from sy_nnz().

◆ sy_trace_ab()

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

References A, and B.

◆ syAccumulateWith()

template<class Treal , class Telement = Treal>
template<typename Top >
Treal mat::Matrix< Treal, Telement >::syAccumulateWith ( Top &  op)
inline

◆ syAddValues()

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

◆ syAssignDiffFrobNormsLowestLevel()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::syAssignDiffFrobNormsLowestLevel ( Matrix< Treal, Matrix< Treal, Telement > > const A,
Matrix< Treal, Matrix< Treal, Telement > > const B 
)

Same as syAssignFrobNormsLowestLevel except that the Frobenius norms of the differences between submatrices of A and B are assigned.


References A, and B.

◆ syAssignFrobNormsLowestLevel()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::syAssignFrobNormsLowestLevel ( Matrix< Treal, Matrix< Treal, Telement > > const A)

Version of assignFrobNormsLowestLevelToMatrix for symmetric matrices.

References A.

Referenced by mat::Matrix< Treal >::syAssignDiffFrobNormsLowestLevel().

◆ syAssignFromSparse()

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

◆ syFrob()

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

◆ syFrobDiff()

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

◆ syFrobSquared()

template<class Treal , class Telement >
Treal mat::Matrix< Treal, Telement >::syFrobSquared

◆ syFrobSquaredDiff()

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

◆ syFullMatrix()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::syFullMatrix ( std::vector< Treal > &  fullMat) const

◆ syGetAllValues()

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

◆ syGetValues()

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

◆ syInch()

◆ symm()

◆ symToNosym()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::symToNosym

◆ syRandom()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::syRandom

◆ syRandomZeroStructure()

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

◆ syrk()

◆ sySetElementsByRule()

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

◆ sysq()

◆ sytr_upper_tr_only()

◆ syUpTriFullMatrix()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::syUpTriFullMatrix ( std::vector< Treal > &  fullMat) const

◆ trace()

template<class Treal , class Telement >
Treal mat::Matrix< Treal, Telement >::trace

References mat::trace().

◆ trace_ab()

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

References A, and B.

◆ trace_aTb()

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

References A, and B.

◆ transpose()

◆ trmm()

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

◆ trmm_upper_tr_only()

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

◆ trSetElementsByRule()

template<class Treal , class Telement = Treal>
template<typename TRule >
void mat::Matrix< Treal, Telement >::trSetElementsByRule ( TRule &  rule)
inline

◆ trsytriplemm()

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

◆ truncateAccordingToSparsityPattern()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::truncateAccordingToSparsityPattern ( Matrix< Treal, Matrix< Treal, Telement > > &  A) const

Truncate matrix A according to the sparsity pattern of the this matrix (frobNormMat).

References A.

◆ writeToFile()

template<class Treal , class Telement >
void mat::Matrix< Treal, Telement >::writeToFile ( std::ofstream &  file) const

Friends And Related Function Documentation

◆ Vector< Treal, Telement >

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

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