ergo
|
Sparse matrix structure optimized for XC data access pattern. More...
#include <sparse_matrix.h>
Classes | |
class | Exception |
Public Member Functions | |
SparseMatrix (const SparsePattern &pattern_) | |
Constructs a square matrix and preallocate according to the specified pattern. More... | |
SparseMatrix (const SparsePattern &pattern_, const symmMatrix &m, const int *aoMap, std::vector< int > const &permutationHML) | |
~SparseMatrix () | |
void | print (const char *title) const |
void | addSymmetrizedTo (symmMatrix &sMat, const int *aoMap, std::vector< int > const &permutationHML) const |
Assigns itself to a given hierarchic matrix. More... | |
void | add (int row, int col, ergo_real val) |
Adds given value to an element in given row and column. More... | |
ergo_real | at (int row, int col) const |
Private Member Functions | |
void | createOffsets (const SparsePattern &pattern) |
Fills in offsets and his based on pattern. More... | |
Private Attributes | |
const SparsePattern & | pattern |
ergo_real ** | columns |
int ** | offsets |
for accelerated at() and add() methods. More... | |
int ** | his |
for accelerated at() and add() methods. More... | |
int * | cnt |
for accelerated at() and add() methods. More... | |
int | n |
Sparse matrix structure optimized for XC data access pattern.
|
explicit |
Constructs a square matrix and preallocate according to the specified pattern.
References columns, createOffsets(), SparsePattern::getColumnSize(), n, and pattern.
SparseMatrix::SparseMatrix | ( | const SparsePattern & | pattern_, |
const symmMatrix & | m, | ||
const int * | aoMap, | ||
std::vector< int > const & | permutationHML | ||
) |
|
inline |
|
inline |
Adds given value to an element in given row and column.
Checking against intervals.end() is terribly expensive!!! Luckily, we do not have to do it.
void SparseMatrix::addSymmetrizedTo | ( | symmMatrix & | sMat, |
const int * | aoMap, | ||
std::vector< int > const & | permutationHML | ||
) | const |
Assigns itself to a given hierarchic matrix.
References SparsePattern::Column::begin(), columns, SparsePattern::Column::end(), n, and pattern.
Referenced by XCEvaluatorRestricted::getXC().
|
inline |
|
private |
Fills in offsets and his based on pattern.
References cnt, his, n, offsets, and SparsePattern::size().
Referenced by SparseMatrix().
void SparseMatrix::print | ( | const char * | title | ) | const |
References SparsePattern::Column::begin(), columns, SparsePattern::Column::end(), n, and pattern.
|
private |
for accelerated at() and add() methods.
Referenced by createOffsets().
|
private |
Referenced by addSymmetrizedTo(), print(), and SparseMatrix().
|
private |
for accelerated at() and add() methods.
Referenced by createOffsets().
|
private |
Referenced by addSymmetrizedTo(), createOffsets(), print(), and SparseMatrix().
|
private |
for accelerated at() and add() methods.
Referenced by createOffsets().
|
private |
Referenced by addSymmetrizedTo(), print(), and SparseMatrix().