ergo
|
Matrix class and heart of the matrix library. More...
#include <Matrix.h>
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 |
![]() | |
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 const & | operator[] (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 | |
![]() | |
Telement int | col |
return | elements [row+col *nrows()] |
const Telement int col | const |
![]() | |
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 void | swap (MatrixHierarchicBase< Treal, Telement > &A, MatrixHierarchicBase< Treal, Telement > &B) |
![]() | |
SizesAndBlocks | rows |
SizesAndBlocks | cols |
Telement * | elements |
Matrix class and heart of the matrix library.
This class is used to obtain the hierarchic data structure.
typedef Telement mat::Matrix< Treal, Telement >::ElementType |
typedef Vector<Treal, typename ElementType::VectorType> mat::Matrix< Treal, Telement >::VectorType |
|
inline |
|
inline |
References mat::Matrix< Treal, Telement >::clear().
|
static |
void mat::Matrix< Treal, Telement >::add_abs_col_sums | ( | Treal * | abscolsums | ) | const |
Referenced by mat::Matrix< Treal >::gershgorin().
void mat::Matrix< Treal, Telement >::addIdentity | ( | Treal | alpha | ) |
void mat::Matrix< Treal, Telement >::addValues | ( | std::vector< int > const & | rowind, |
std::vector< int > const & | colind, | ||
std::vector< Treal > const & | values | ||
) |
Referenced by mat::Matrix< Treal >::addValues(), and mat::Matrix< Treal >::syAddValues().
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 | ||
) |
References cols, mat::SizesAndBlocks::getNBlocks(), rows, and mat::SizesAndBlocks::whichBlock().
|
inline |
References mat::SingletonForTimings::addTime(), mat::MatrixHierarchicBase< Treal, Telement >::assert(), mat::MatrixHierarchicBase< Treal, Telement >::col, mat::MatrixHierarchicBase< Treal, Telement >::cols, mat::MatrixHierarchicBase< Treal, Telement >::elements, mat::SizesAndBlocks::getNBlocks(), mat::SizesAndBlocks::getSizesAndBlocksForLowerLevel(), mat::SingletonForTimings::instance(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), mat::MatrixHierarchicBase< Treal, Telement >::nElements(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), mat::MatrixHierarchicBase< Treal, Telement >::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, 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().
void mat::Matrix< Treal, Telement >::assign | ( | Treal const | alpha, |
Matrix< Treal, Telement > const & | A | ||
) |
References A, and mat::Matrix< Treal, Telement >::add().
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().
void mat::Matrix< Treal, Telement >::assignFromFull | ( | std::vector< Treal > const & | fullMat | ) |
References cols, mat::SizesAndBlocks::getNTotalScalars(), and rows.
void mat::Matrix< Treal, Telement >::assignFromSparse | ( | std::vector< int > const & | rowind, |
std::vector< int > const & | colind, | ||
std::vector< Treal > const & | values | ||
) |
Referenced by mat::Matrix< Treal >::assignFromSparse(), and mat::Matrix< Treal >::syAssignFromSparse().
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 | ||
) |
References cols, mat::SizesAndBlocks::getNBlocks(), rows, and mat::SizesAndBlocks::whichBlock().
void mat::Matrix< Treal, Telement >::clear | ( | ) |
References mat::freeElements().
Referenced by mat::Matrix< Treal >::assignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::assignFrobNormsLowestLevel(), mat::Matrix< Treal >::assignFromSparse(), mat::Matrix< Treal, Telement >::frobThreshElementLevel(), mat::Matrix< Treal, Telement >::frobThreshLowestLevel(), mat::Matrix< Treal >::operator=(), mat::Matrix< Treal >::randomZeroStructure(), mat::Matrix< Treal >::readFromFile(), mat::Matrix< Treal >::syAssignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::syAssignFrobNormsLowestLevel(), mat::Matrix< Treal >::syRandomZeroStructure(), mat::Matrix< Treal, Telement >::~Matrix(), and mat::Matrix< Treal >::~Matrix().
|
inline |
References mat::Matrix< Treal, Telement >::frobSquared(), and template_blas_sqrt().
Referenced by mat::Matrix< Treal >::assignFrobNormsLowestLevel().
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, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), rows, and mat::MatrixHierarchicBase< Treal, Telement >::swap().
Referenced by mat::Matrix< Treal, Telement >::frob_thresh(), and mat::Matrix< Treal >::frob_thresh().
|
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().
|
inlinestatic |
References A, B, mat::Matrix< Treal, Telement >::frobSquaredDiff(), and template_blas_sqrt().
Treal mat::Matrix< Treal, Telement >::frobSquared | ( | ) | const |
|
static |
Referenced by mat::Matrix< Treal, Telement >::frobDiff(), and mat::Matrix< Treal >::frobDiff().
void mat::Matrix< Treal, Telement >::frobThreshElementLevel | ( | Treal const | threshold, |
Matrix< Treal, Telement > * | ErrorMatrix | ||
) |
void mat::Matrix< Treal, Telement >::frobThreshLowestLevel | ( | Treal const | threshold, |
Matrix< Treal, Telement > * | ErrorMatrix | ||
) |
void mat::Matrix< Treal, Telement >::fullMatrix | ( | std::vector< Treal > & | fullMat | ) | const |
References cols, mat::SizesAndBlocks::getNTotalScalars(), mat::SizesAndBlocks::getOffset(), and rows.
|
inline |
Accumulation algorithm for general matrices.
References mat::MatrixHierarchicBase< Treal, Telement >::col, mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), mat::MatrixHierarchicBase< Treal, Telement >::ncols(), and mat::MatrixHierarchicBase< Treal, Telement >::nrows().
Referenced by mat::Matrix< Treal, Telement >::syAccumulateWith().
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), B, mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), MAT_OMP_END, MAT_OMP_FINALIZE, MAT_OMP_INIT, MAT_OMP_START, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), and mat::MatrixHierarchicBase< Treal, Telement >::resetRows().
Referenced by mat::Matrix< Treal >::gemm_upper_tr_only().
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), B, mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), and mat::MatrixHierarchicBase< Treal, Telement >::resetRows().
void mat::Matrix< Treal, Telement >::gershgorin | ( | Treal & | lmin, |
Treal & | lmax | ||
) | const |
References template_blas_fabs().
Referenced by mat::Matrix< Treal, Telement >::sy_gershgorin().
void mat::Matrix< Treal, Telement >::get_diagonal | ( | Treal * | diag | ) | const |
Referenced by mat::Matrix< Treal >::gershgorin().
void mat::Matrix< Treal, Telement >::getAllValues | ( | std::vector< int > & | rowind, |
std::vector< int > & | colind, | ||
std::vector< Treal > & | values | ||
) | const |
void mat::Matrix< Treal, Telement >::getFrobSqElementLevel | ( | std::vector< Treal > & | frobsq | ) | const |
void mat::Matrix< Treal, Telement >::getFrobSqLowestLevel | ( | std::vector< Treal > & | frobsq | ) | const |
void mat::Matrix< Treal, Telement >::getValues | ( | std::vector< int > const & | rowind, |
std::vector< int > const & | colind, | ||
std::vector< Treal > & | values | ||
) | const |
Referenced by mat::Matrix< Treal >::getValues(), and mat::Matrix< Treal >::syGetValues().
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 |
References cols, mat::SizesAndBlocks::getNBlocks(), rows, and mat::SizesAndBlocks::whichBlock().
|
inlinestatic |
|
inline |
size_t mat::Matrix< Treal, Telement >::memory_usage | ( | ) | const |
size_t mat::Matrix< Treal, Telement >::nnz | ( | ) | const |
Returns number of nonzeros in matrix.
Referenced by mat::Matrix< Treal, Telement >::nvalues(), and mat::Matrix< Treal >::nvalues().
void mat::Matrix< Treal, Telement >::nosymToSym | ( | ) |
|
inline |
Returns number of stored values in matrix.
Returns same number as nnz()
References mat::Matrix< Treal, Telement >::nnz().
Matrix< Treal, Telement > & mat::Matrix< Treal, Telement >::operator*= | ( | const Treal | alpha | ) |
|
inline |
Matrix< Treal, Telement > & mat::Matrix< Treal, Telement >::operator= | ( | int const | k | ) |
void mat::Matrix< Treal, Telement >::random | ( | ) |
Referenced by mat::Matrix< Treal >::randomZeroStructure().
void mat::Matrix< Treal, Telement >::randomZeroStructure | ( | Treal | probabilityBeingZero | ) |
Get a random zero structure with a specified probability that each submatrix is zero.
void mat::Matrix< Treal, Telement >::readFromFile | ( | std::ifstream & | file | ) |
void mat::Matrix< Treal, Telement >::setElementsByRule | ( | TRule & | rule | ) |
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), B, mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), MAT_OMP_END, MAT_OMP_FINALIZE, MAT_OMP_INIT, MAT_OMP_START, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), mat::symm(), and mat::transpose().
Referenced by mat::Matrix< Treal >::ssmm_upper_tr_only().
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), B, mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), MAT_OMP_END, MAT_OMP_FINALIZE, MAT_OMP_INIT, MAT_OMP_START, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), and mat::symm().
|
inline |
size_t mat::Matrix< Treal, Telement >::sy_nnz | ( | ) | const |
Returns number of nonzeros in matrix including lower triangle elements.
size_t mat::Matrix< Treal, Telement >::sy_nvalues | ( | ) | const |
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().
|
static |
|
inline |
void mat::Matrix< Treal, Telement >::syAddValues | ( | std::vector< int > const & | rowind, |
std::vector< int > const & | colind, | ||
std::vector< Treal > const & | values | ||
) |
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().
void mat::Matrix< Treal, Telement >::syAssignFromSparse | ( | std::vector< int > const & | rowind, |
std::vector< int > const & | colind, | ||
std::vector< Treal > const & | values | ||
) |
|
inline |
References mat::Matrix< Treal, Telement >::syFrobSquared(), and template_blas_sqrt().
|
inlinestatic |
References A, B, mat::Matrix< Treal, Telement >::syFrobSquaredDiff(), and template_blas_sqrt().
Treal mat::Matrix< Treal, Telement >::syFrobSquared | ( | ) | const |
Referenced by mat::Matrix< Treal, Telement >::syFrob(), and mat::Matrix< Treal >::syFrob().
|
static |
Referenced by mat::Matrix< Treal, Telement >::syFrobDiff(), and mat::Matrix< Treal >::syFrobDiff().
void mat::Matrix< Treal, Telement >::syFullMatrix | ( | std::vector< Treal > & | fullMat | ) | const |
References cols, mat::SizesAndBlocks::getNTotalScalars(), mat::SizesAndBlocks::getOffset(), and rows.
void mat::Matrix< Treal, Telement >::syGetAllValues | ( | std::vector< int > & | rowind, |
std::vector< int > & | colind, | ||
std::vector< Treal > & | values | ||
) | const |
void mat::Matrix< Treal, Telement >::syGetValues | ( | std::vector< int > const & | rowind, |
std::vector< int > const & | colind, | ||
std::vector< Treal > & | values | ||
) | const |
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), mat::Matrix< Treal, Telement >::frob_thresh(), mat::gemm(), mat::left, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), mat::right, mat::stable, and mat::trmm().
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), B, mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), MAT_OMP_END, MAT_OMP_FINALIZE, MAT_OMP_INIT, MAT_OMP_START, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), and mat::symm().
Referenced by mat::Matrix< Treal >::ssmm().
void mat::Matrix< Treal, Telement >::symToNosym | ( | ) |
References mat::transpose().
Referenced by mat::Matrix< Treal, Telement >::sy_gershgorin().
void mat::Matrix< Treal, Telement >::syRandom | ( | ) |
Referenced by mat::Matrix< Treal >::syRandomZeroStructure().
void mat::Matrix< Treal, Telement >::syRandomZeroStructure | ( | Treal | probabilityBeingZero | ) |
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), MAT_OMP_END, MAT_OMP_FINALIZE, MAT_OMP_INIT, MAT_OMP_START, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), and mat::syrk().
Referenced by mat::Matrix< Treal >::sysq().
void mat::Matrix< Treal, Telement >::sySetElementsByRule | ( | TRule & | rule | ) |
Referenced by mat::Matrix< Treal, Telement >::trSetElementsByRule().
|
static |
References A, mat::Matrix< Treal, Telement >::allocate(), mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), MAT_OMP_END, MAT_OMP_FINALIZE, MAT_OMP_INIT, MAT_OMP_START, mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::resetCols(), mat::MatrixHierarchicBase< Treal, Telement >::resetRows(), mat::symm(), and mat::syrk().
|
static |
References A, mat::gemm(), mat::MatrixHierarchicBase< Treal, Telement >::is_empty(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::symm(), and mat::trmm().
Referenced by mat::Matrix< Treal, Telement >::trsytriplemm(), and mat::Matrix< Treal >::trsytriplemm().
void mat::Matrix< Treal, Telement >::syUpTriFullMatrix | ( | std::vector< Treal > & | fullMat | ) | const |
References cols, mat::SizesAndBlocks::getNTotalScalars(), mat::SizesAndBlocks::getOffset(), and rows.
Treal mat::Matrix< Treal, Telement >::trace | ( | ) | const |
References mat::trace().
|
static |
|
static |
|
static |
References A, mat::MatrixHierarchicBase< Treal, Telement >::cols, mat::MatrixHierarchicBase< Treal, Telement >::elements, mat::freeElements(), mat::MatrixHierarchicBase< Treal, Telement >::is_zero(), mat::MatrixHierarchicBase< Treal, Telement >::ncols(), mat::MatrixHierarchicBase< Treal, Telement >::nElements(), mat::MatrixHierarchicBase< Treal, Telement >::nrows(), mat::MatrixHierarchicBase< Treal, Telement >::rows, and mat::transpose().
|
static |
References A, B, mat::gemm(), and mat::trmm().
Referenced by mat::Matrix< Treal >::sytr_upper_tr_only(), and mat::Matrix< Treal >::trmm_upper_tr_only().
|
static |
References A, B, mat::gemm(), and mat::trmm().
Referenced by mat::Matrix< Treal, Telement >::trsytriplemm(), and mat::Matrix< Treal >::trsytriplemm().
|
inline |
|
static |
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.
void mat::Matrix< Treal, Telement >::writeToFile | ( | std::ofstream & | file | ) | const |
|
friend |