ergo
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 n, pattern, SparsePattern::getColumnSize(), columns, and createOffsets().

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
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 offsets, n, his, cnt, 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::offsets [private]

for accelerated at() and add() methods.

Referenced by createOffsets().


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