SparseMatrix Class Reference

Sparse matrix structure optimized for XC data access pattern. More...

#include <sparse_matrix.h>

List of all members.

Classes

class  Exception

Public Member Functions

 SparseMatrix (const SparsePattern &pattern_)
 Constructs a square matrix and preallocate according to the specified pattern.
 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.
void add (int row, int col, ergo_real val)
 Adds given value to an element in given row and column.
ergo_real at (int row, int col) const

Private Member Functions

void createOffsets (const SparsePattern &pattern)
 Fills in offsets and his based on pattern.

Private Attributes

const SparsePatternpattern
ergo_real ** columns
int ** offsets
 for accelerated at() and add() methods.
int ** his
 for accelerated at() and add() methods.
int * cnt
 for accelerated at() and add() methods.
int n

Detailed Description

Sparse matrix structure optimized for XC data access pattern.


Constructor & Destructor Documentation

SparseMatrix::SparseMatrix ( const SparsePattern 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 
)
SparseMatrix::~SparseMatrix (  )  [inline]

Member Function Documentation

void SparseMatrix::add ( int  row,
int  col,
ergo_real  val 
) [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().

ergo_real SparseMatrix::at ( int  row,
int  col 
) const [inline]
void SparseMatrix::createOffsets ( const SparsePattern pattern  )  [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

Member Data Documentation

int* SparseMatrix::cnt [private]

for accelerated at() and add() methods.

Referenced by createOffsets().

int** SparseMatrix::his [private]

for accelerated at() and add() methods.

Referenced by createOffsets().

int SparseMatrix::n [private]
int** SparseMatrix::offsets [private]

for accelerated at() and add() methods.

Referenced by createOffsets().


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

Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1