ug4
ug::SparseMatrix< TValueType > Class Template Reference

sparse matrix for big, variable sparse matrices. More...

#include <sparsematrix.h>

Classes

class  const_row_iterator
 
class  row_iterator
 

Public Types

enum  { rows_sorted =true }
 
typedef AlgebraicConnection< TValueType > connection
 
typedef ConstMatrixRow< this_typeconst_row_type
 
typedef MatrixRow< this_typerow_type
 
typedef SparseMatrix< value_typethis_type
 
typedef TValueType value_type
 

Public Member Functions

template<typename M >
void add (const M &mat)
 
void add_matrix_row (size_t row, connection *c, size_t nr)
 
template<typename Vector_type >
bool apply (Vector_type &res, const Vector_type &x) const
 calculate res = A x More...
 
template<typename vector_t >
void apply_ignore_zero_rows (vector_t &dest, const number &beta1, const vector_t &w1) const
 calculated dest = beta1*A*w1 . For empty rows, dest will not be changed More...
 
template<typename Vector_type >
bool apply_transposed (Vector_type &res, const Vector_type &x) const
 calculate res = A.T x More...
 
template<typename vector_t >
void apply_transposed_ignore_zero_rows (vector_t &dest, const number &beta1, const vector_t &w1) const
 calculated dest = beta1*A*w1 . For empty cols of A (=empty rows of A^T), dest will not be changed More...
 
template<typename vector_t >
void axpy (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const vector_t &w1) const
 calculate dest = alpha1*v1 + beta1*A*w1 (A = this matrix) More...
 
template<typename vector_t >
void axpy_transposed (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const vector_t &w1) const
 calculate dest = alpha1*v1 + beta1*A^T*w1 (A = this matrix) More...
 
row_iterator begin_row (size_t r)
 
const_row_iterator begin_row (size_t r) const
 
void check_rc (size_t r, size_t c) const
 
void check_row_modifiable (size_t r) const
 
void clear_and_free ()
 Clears the matrix vectors and frees their memory. More...
 
void clear_retain_structure ()
 
int col (size_t i) const
 
void copy_crs (size_t &numRows, size_t &numCols, std::vector< value_type > &argValues, std::vector< int > &argRowStart, std::vector< int > &argColInd) const
 
void defragment ()
 
void defragment () const
 
row_iterator end_row (size_t r)
 
const_row_iterator end_row (size_t r) const
 
template<typename M >
void get (M &mat) const
 get local matrix More...
 
row_iterator get_connection (size_t r, size_t c)
 
const_row_iterator get_connection (size_t r, size_t c) const
 
row_iterator get_connection (size_t r, size_t c, bool &bFound)
 
const_row_iterator get_connection (size_t r, size_t c, bool &bFound) const
 
void get_crs (size_t &numRows, size_t &numCols, value_type *&pValues, size_t *pRowStart, size_t *pColInd, size_t &nnz) const
 
row_iterator get_iterator_or_next (size_t r, size_t c)
 
row_type get_row (size_t r)
 
const_row_type get_row (size_t r) const
 
void get_values (std::vector< value_type > &argValues) const
 
bool has_connection (size_t r, size_t c) const
 
bool is_isolated (size_t i) const
 check for isolated condition of an index More...
 
int iters () const
 
template<typename vector_t >
void mat_mult_add_row (size_t row, typename vector_t::value_type &dest, double alpha, const vector_t &v) const
 calculates dest += alpha * A[row, .] v; More...
 
template<typename Vector_type >
bool matmul_minus (Vector_type &res, const Vector_type &x) const
 calculate res -= A x More...
 
size_t num_cols () const
 returns the number of cols More...
 
size_t num_connections (size_t i) const
 returns number of connections of row row. More...
 
size_t num_rows () const
 returns number of rows More...
 
value_typeoperator() (size_t r, size_t c)
 
const value_typeoperator() (size_t r, size_t c) const
 
SparseMatrix< value_type > & operator*= (double d)
 
SparseMatrix< value_type > & operator= (const SparseMatrix< value_type > &B)
 
void p () const
 
void pr (size_t row) const
 
void print (const char *const name=NULL) const
 
void print_to_file (const char *filename) const
 
void printrow (size_t row) const
 
void printtype () const
 
void resize_and_clear (size_t newRows, size_t newCols)
 resizes the SparseMatrix More...
 
void resize_and_keep_values (size_t newRows, size_t newCols)
 
void scale (double d)
 
template<typename M >
void set (const M &mat)
 set local matrix More...
 
void set (double a)
 set matrix to Id*a More...
 
void set_as_copy_of (const SparseMatrix< value_type > &B, double scale=1.0)
 create/recreate this as a copy of SparseMatrix B More...
 
void set_as_transpose_of (const SparseMatrix< value_type > &B, double scale=1.0)
 write in a empty SparseMatrix (this) the transpose SparseMatrix of B. More...
 
void set_as_transpose_of2 (const SparseMatrix< value_type > &B, double scale=1.0)
 
void set_matrix_row (size_t row, connection *c, size_t nr)
 
 SparseMatrix ()
 constructor for empty SparseMatrix More...
 
size_t total_num_connections () const
 returns the total number of connections More...
 
virtual ~SparseMatrix ()
 destructor More...
 

Public Attributes

std::vector< int > nrOfRowIterators
 

Protected Member Functions

void check_fragmentation () const
 
void copyToNewSize (size_t newSize)
 
void copyToNewSize (size_t newSize, size_t maxCols)
 
int get_index (int r, int c)
 
int get_index_const (int r, int c) const
 
int get_index_internal (size_t row, int col) const
 
int get_nnz_max_cols (size_t maxCols)
 

Protected Attributes

bool bNeedsValues
 
std::vector< int > cols
 
size_t fragmented
 
int iIterators
 
int m_numCols
 
int maxValues
 
size_t nnz
 
std::vector< int > rowEnd
 
std::vector< int > rowMax
 
std::vector< int > rowStart
 
std::vector< value_typevalues
 

Private Member Functions

void add_iterator (size_t row) const
 
void assureValuesSize (size_t s)
 
void check_row (size_t row, int i) const
 
size_t get_nnz () const
 
void remove_iterator (size_t row) const
 
 SparseMatrix (SparseMatrix &)
 disallow copy operator More...
 

Friends

std::ostream & operator<< (std::ostream &out, const SparseMatrix &m)
 

Detailed Description

template<typename TValueType>
class ug::SparseMatrix< TValueType >

sparse matrix for big, variable sparse matrices.

SparseMatrix

matrix is stored independent row-wise When doing discretisation, use the add set and get methods for dealing with submatrices of A. For other things you can use the row iterators or operator()-methods.

See also
matrixrow, CreateAsMultiplyOf
Parameters
Tblocktype
Tblocktype

Member Typedef Documentation

◆ connection

template<typename TValueType >
typedef AlgebraicConnection<TValueType> ug::SparseMatrix< TValueType >::connection

◆ const_row_type

template<typename TValueType >
typedef ConstMatrixRow<this_type> ug::SparseMatrix< TValueType >::const_row_type

◆ row_type

template<typename TValueType >
typedef MatrixRow<this_type> ug::SparseMatrix< TValueType >::row_type

◆ this_type

template<typename TValueType >
typedef SparseMatrix<value_type> ug::SparseMatrix< TValueType >::this_type

◆ value_type

template<typename TValueType >
typedef TValueType ug::SparseMatrix< TValueType >::value_type

Member Enumeration Documentation

◆ anonymous enum

template<typename TValueType >
anonymous enum
Enumerator
rows_sorted 

Constructor & Destructor Documentation

◆ SparseMatrix() [1/2]

template<typename T >
SparseMatrix< T >::SparseMatrix

constructor for empty SparseMatrix

References PROFILE_SPMATRIX.

◆ ~SparseMatrix()

template<typename TValueType >
virtual ug::SparseMatrix< TValueType >::~SparseMatrix ( )
inlinevirtual

destructor

◆ SparseMatrix() [2/2]

template<typename TValueType >
ug::SparseMatrix< TValueType >::SparseMatrix ( SparseMatrix< TValueType > &  )
private

disallow copy operator

Member Function Documentation

◆ add()

template<typename T >
template<typename M >
void SparseMatrix< T >::add ( const M &  mat)

Add a local matrix

The local matrix type must declare the following members:

◆ add_iterator()

◆ add_matrix_row()

template<typename T >
void SparseMatrix< T >::add_matrix_row ( size_t  row,
connection c,
size_t  nr 
)

adds the connections c to the matrixrow row. if c has a connection con with con.iIndex=i, and the matrix already has a connection (row, i), the function will set A(row,i) += con.dValue. otherwise the connection A(row, i) is created and set to con.dValue.

Parameters
rowrow to add to
cconnections ("row") to be added the row.
nrnumber of connections in array c.
Returns
true on success.
Note
you may use double connections in c.

References ug::AlgebraicConnection< T >::iIndex.

◆ apply()

template<typename TValueType >
template<typename Vector_type >
bool ug::SparseMatrix< TValueType >::apply ( Vector_type &  res,
const Vector_type &  x 
) const
inline

calculate res = A x

References ug::SparseMatrix< TValueType >::axpy().

◆ apply_ignore_zero_rows()

template<typename T >
template<typename vector_t >
void SparseMatrix< T >::apply_ignore_zero_rows ( vector_t &  dest,
const number beta1,
const vector_t &  w1 
) const

calculated dest = beta1*A*w1 . For empty rows, dest will not be changed

References MatMult(), MatMultAdd(), and num_rows().

◆ apply_transposed()

template<typename TValueType >
template<typename Vector_type >
bool ug::SparseMatrix< TValueType >::apply_transposed ( Vector_type &  res,
const Vector_type &  x 
) const
inline

calculate res = A.T x

References ug::SparseMatrix< TValueType >::axpy_transposed().

◆ apply_transposed_ignore_zero_rows()

template<typename T >
template<typename vector_t >
void SparseMatrix< T >::apply_transposed_ignore_zero_rows ( vector_t &  dest,
const number beta1,
const vector_t &  w1 
) const

calculated dest = beta1*A*w1 . For empty cols of A (=empty rows of A^T), dest will not be changed

References begin_row(), end_row(), ug::MatMultTransposedAdd(), and num_rows().

◆ assureValuesSize()

template<typename T >
void SparseMatrix< T >::assureValuesSize ( size_t  s)
private

References s.

◆ axpy()

template<typename T >
template<typename vector_t >
void SparseMatrix< T >::axpy ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number beta1,
const vector_t &  w1 
) const

calculate dest = alpha1*v1 + beta1*A*w1 (A = this matrix)

References num_rows(), and PROFILE_SPMATRIX.

Referenced by ug::SparseMatrix< TValueType >::apply(), and ug::SparseMatrix< TValueType >::matmul_minus().

◆ axpy_transposed()

template<typename T >
template<typename vector_t >
void SparseMatrix< T >::axpy_transposed ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number beta1,
const vector_t &  w1 
) const

calculate dest = alpha1*v1 + beta1*A^T*w1 (A = this matrix)

References ug::MatMultTransposedAdd(), num_rows(), PROFILE_SPMATRIX, and ug::VecScaleAssign().

Referenced by ug::SparseMatrix< TValueType >::apply_transposed(), and ug::MatMultTransposedAdd().

◆ begin_row() [1/2]

◆ begin_row() [2/2]

template<typename TValueType >
const_row_iterator ug::SparseMatrix< TValueType >::begin_row ( size_t  r) const
inline

◆ check_fragmentation()

template<typename T >
void SparseMatrix< T >::check_fragmentation
protected

References defragment().

◆ check_rc()

◆ check_row()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::check_row ( size_t  row,
int  i 
) const
inlineprivate

◆ check_row_modifiable()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::check_row_modifiable ( size_t  r) const
inline

◆ clear_and_free()

template<typename T >
void SparseMatrix< T >::clear_and_free

Clears the matrix vectors and frees their memory.

◆ clear_retain_structure()

template<typename T >
void SparseMatrix< T >::clear_retain_structure

References fill().

◆ col()

template<typename TValueType >
int ug::SparseMatrix< TValueType >::col ( size_t  i) const
inline

◆ copy_crs()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::copy_crs ( size_t &  numRows,
size_t &  numCols,
std::vector< value_type > &  argValues,
std::vector< int > &  argRowStart,
std::vector< int > &  argColInd 
) const
inline

copies the matrix to the standard CRS format

Parameters
numRows(out) num rows of A
numCols(out) num rows of A
argValues(out) value_type vector with non-zero values
argRowStart(out) row i is from argRowStart[i] to argRowStart[i+1]
argColInd(out) argColInd[i] is colum index of nonzero i

References ug::SparseMatrix< TValueType >::cols, ug::SparseMatrix< TValueType >::defragment(), ug::SparseMatrix< TValueType >::num_cols(), ug::SparseMatrix< TValueType >::num_rows(), ug::SparseMatrix< TValueType >::rowStart, and ug::SparseMatrix< TValueType >::values.

◆ copyToNewSize() [1/2]

template<typename TValueType >
void ug::SparseMatrix< TValueType >::copyToNewSize ( size_t  newSize)
inlineprotected

◆ copyToNewSize() [2/2]

template<typename T >
void SparseMatrix< T >::copyToNewSize ( size_t  newSize,
size_t  maxCols 
)
protected

◆ defragment() [1/2]

◆ defragment() [2/2]

template<typename TValueType >
void ug::SparseMatrix< TValueType >::defragment ( ) const
inline

◆ end_row() [1/2]

◆ end_row() [2/2]

template<typename TValueType >
const_row_iterator ug::SparseMatrix< TValueType >::end_row ( size_t  r) const
inline

◆ get()

template<typename T >
template<typename M >
void SparseMatrix< T >::get ( M &  mat) const

get local matrix

See also
add

◆ get_connection() [1/4]

template<typename TValueType >
row_iterator ug::SparseMatrix< TValueType >::get_connection ( size_t  r,
size_t  c 
)
inline
Parameters
rindex of the row
cindex of the column
Returns
a row_iterator to the connection A(r,c)
Remarks
creates connection if necessary.

References ug::SparseMatrix< TValueType >::bNeedsValues, ug::SparseMatrix< TValueType >::check_rc(), and ug::SparseMatrix< TValueType >::get_index().

◆ get_connection() [2/4]

template<typename TValueType >
const_row_iterator ug::SparseMatrix< TValueType >::get_connection ( size_t  r,
size_t  c 
) const
inline
Parameters
rindex of the row
cindex of the column
Returns
a const_row_iterator to the connection A(r,c) if existing, otherwise end_row(row)

References ug::SparseMatrix< TValueType >::get_connection().

◆ get_connection() [3/4]

template<typename TValueType >
row_iterator ug::SparseMatrix< TValueType >::get_connection ( size_t  r,
size_t  c,
bool &  bFound 
)
inline
Parameters
rindex of the row
cindex of the column
Returns
a row_iterator to the connection A(r,c) if existing, otherwise end_row(row)

References ug::SparseMatrix< TValueType >::check_rc(), ug::SparseMatrix< TValueType >::end_row(), and ug::SparseMatrix< TValueType >::get_index_const().

◆ get_connection() [4/4]

template<typename TValueType >
const_row_iterator ug::SparseMatrix< TValueType >::get_connection ( size_t  r,
size_t  c,
bool &  bFound 
) const
inline
Parameters
rindex of the row
cindex of the column
Returns
a const_row_iterator to the connection A(r,c) if existing, otherwise end_row(row)

References ug::SparseMatrix< TValueType >::check_rc(), ug::SparseMatrix< TValueType >::end_row(), and ug::SparseMatrix< TValueType >::get_index_const().

Referenced by ug::SparseMatrix< TValueType >::get_connection(), and ug::SparseMatrix< TValueType >::has_connection().

◆ get_crs()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::get_crs ( size_t &  numRows,
size_t &  numCols,
value_type *&  pValues,
size_t *  pRowStart,
size_t *  pColInd,
size_t &  nnz 
) const
inline

returns pointers to CRS format. note that these are only valid as long as the matrix is not modified.

Parameters
numRows(out) num rows of A
numCols(out) num rows of A
pValues(out) value_type vector with non-zero values
pRowStart(out) row i is from pRowStart[i] to pRowStart[i+1]
pColInd(out) pColInd[i] is colum index of nonzero i

References ug::SparseMatrix< TValueType >::defragment(), ug::SparseMatrix< TValueType >::nnz, ug::SparseMatrix< TValueType >::num_cols(), ug::SparseMatrix< TValueType >::num_rows(), ug::SparseMatrix< TValueType >::total_num_connections(), UG_THROW, and ug::SparseMatrix< TValueType >::values.

◆ get_index()

template<typename T >
int SparseMatrix< T >::get_index ( int  r,
int  c 
)
protected

◆ get_index_const()

template<typename T >
int SparseMatrix< T >::get_index_const ( int  r,
int  c 
) const
protected

◆ get_index_internal()

template<typename T >
int SparseMatrix< T >::get_index_internal ( size_t  row,
int  col 
) const
protected

◆ get_iterator_or_next()

template<typename TValueType >
row_iterator ug::SparseMatrix< TValueType >::get_iterator_or_next ( size_t  r,
size_t  c 
)
inline

◆ get_nnz()

template<typename TValueType >
size_t ug::SparseMatrix< TValueType >::get_nnz ( ) const
inlineprivate

◆ get_nnz_max_cols()

template<typename T >
int SparseMatrix< T >::get_nnz_max_cols ( size_t  maxCols)
protected

References num_rows().

◆ get_row() [1/2]

template<typename TValueType >
row_type ug::SparseMatrix< TValueType >::get_row ( size_t  r)
inline

◆ get_row() [2/2]

template<typename TValueType >
const_row_type ug::SparseMatrix< TValueType >::get_row ( size_t  r) const
inline

◆ get_values()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::get_values ( std::vector< value_type > &  argValues) const
inline

assigns a reference to the values vector to argument vector

Parameters
argValuesvector to be assigned

References ug::SparseMatrix< TValueType >::defragment(), and ug::SparseMatrix< TValueType >::values.

◆ has_connection()

template<typename TValueType >
bool ug::SparseMatrix< TValueType >::has_connection ( size_t  r,
size_t  c 
) const
inline

◆ is_isolated()

template<typename T >
bool SparseMatrix< T >::is_isolated ( size_t  i) const
inline

check for isolated condition of an index

Parameters
i
Returns
true if only A[i,i] != 0.0

References begin_row(), end_row(), num_rows(), and UG_ASSERT.

◆ iters()

template<typename TValueType >
int ug::SparseMatrix< TValueType >::iters ( ) const
inline

◆ mat_mult_add_row()

template<typename T >
template<typename vector_t >
void SparseMatrix< T >::mat_mult_add_row ( size_t  row,
typename vector_t::value_type dest,
double  alpha,
const vector_t &  v 
) const
inline

calculates dest += alpha * A[row, .] v;

◆ matmul_minus()

template<typename TValueType >
template<typename Vector_type >
bool ug::SparseMatrix< TValueType >::matmul_minus ( Vector_type &  res,
const Vector_type &  x 
) const
inline

calculate res -= A x

References ug::SparseMatrix< TValueType >::axpy().

◆ num_cols()

◆ num_connections()

template<typename TValueType >
size_t ug::SparseMatrix< TValueType >::num_connections ( size_t  i) const
inline

returns number of connections of row row.

References ug::SparseMatrix< TValueType >::rowEnd, and ug::SparseMatrix< TValueType >::rowStart.

◆ num_rows()

◆ operator()() [1/2]

template<typename TValueType >
value_type& ug::SparseMatrix< TValueType >::operator() ( size_t  r,
size_t  c 
)
inline

operator() (size_t r, size_t c) const access or create connection (r, c)

Parameters
rrow
ccolumn
Note
(r,c) is added to sparsity pattern if not already there use operator()(r,c,bConnectionFound) to prevent
Returns
SparseMat(r, c)=0.0 if connection created, otherwise SparseMat(r, c)

References ug::SparseMatrix< TValueType >::check_rc(), ug::SparseMatrix< TValueType >::cols, ug::SparseMatrix< TValueType >::get_index(), ug::SparseMatrix< TValueType >::rowEnd, ug::SparseMatrix< TValueType >::rowStart, UG_ASSERT, and ug::SparseMatrix< TValueType >::values.

◆ operator()() [2/2]

template<typename TValueType >
const value_type& ug::SparseMatrix< TValueType >::operator() ( size_t  r,
size_t  c 
) const
inline

operator() (size_t r, size_t c) const access connection (r, c)

Parameters
rrow
ccolumn
Note
if connection (r, c) is not there, returns 0.0
Returns
SparseMat(r, c)

References ug::SparseMatrix< TValueType >::check_rc(), ug::SparseMatrix< TValueType >::cols, ug::SparseMatrix< TValueType >::get_index_const(), ug::SparseMatrix< TValueType >::rowEnd, ug::SparseMatrix< TValueType >::rowStart, UG_ASSERT, and ug::SparseMatrix< TValueType >::values.

◆ operator*=()

template<typename TValueType >
SparseMatrix<value_type>& ug::SparseMatrix< TValueType >::operator*= ( double  d)
inline

◆ operator=()

template<typename TValueType >
SparseMatrix<value_type>& ug::SparseMatrix< TValueType >::operator= ( const SparseMatrix< value_type > &  B)
inline

◆ p()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::p ( ) const
inline

◆ pr()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::pr ( size_t  row) const
inline

◆ print_to_file()

template<typename TValueType >
void ug::SparseMatrix< TValueType >::print_to_file ( const char *  filename) const

◆ remove_iterator()

◆ resize_and_clear()

template<typename T >
void SparseMatrix< T >::resize_and_clear ( size_t  newRows,
size_t  newCols 
)

resizes the SparseMatrix

Parameters
newRowsnew nr of rows
newColsnew nr of cols
Returns

References PROFILE_SPMATRIX.

◆ resize_and_keep_values()

template<typename T >
void SparseMatrix< T >::resize_and_keep_values ( size_t  newRows,
size_t  newCols 
)

References PROFILE_SPMATRIX.

◆ scale()

template<typename T >
void SparseMatrix< T >::scale ( double  d)

◆ set() [1/2]

template<typename T >
template<typename M >
void SparseMatrix< T >::set ( const M &  mat)

set local matrix

See also
add

◆ set() [2/2]

template<typename T >
void SparseMatrix< T >::set ( double  a)

set matrix to Id*a

References begin_row(), end_row(), num_rows(), and PROFILE_SPMATRIX.

◆ set_as_copy_of()

template<typename TValueType >
void SparseMatrix< T >::set_as_copy_of ( const SparseMatrix< value_type > &  B,
double  scale = 1.0 
)

create/recreate this as a copy of SparseMatrix B

Parameters
Bthe matrix of which to create a copy of
scalean optional scaling
Returns
true on success

References ug::SparseMatrix< TValueType >::begin_row(), ug::SparseMatrix< TValueType >::end_row(), ug::SparseMatrix< TValueType >::num_cols(), ug::SparseMatrix< TValueType >::num_rows(), and operator()().

Referenced by ug::SparseMatrix< TValueType >::operator=().

◆ set_as_transpose_of()

template<typename T >
void SparseMatrix< T >::set_as_transpose_of ( const SparseMatrix< value_type > &  B,
double  scale = 1.0 
)

write in a empty SparseMatrix (this) the transpose SparseMatrix of B.

Parameters
Bthe matrix of which to create the transpose of
scalean optional scaling
Returns
true on success

◆ set_as_transpose_of2()

◆ set_matrix_row()

template<typename T >
void SparseMatrix< T >::set_matrix_row ( size_t  row,
connection c,
size_t  nr 
)

set a row of the matrix. all previous content in this row is destroyed (

See also
add_matrix_row).
Parameters
rowindex of the row to set
cpointer to a array of sorted connections of size nr
nrnumber of connections in c
Remarks
will sort array c

References ug::AlgebraicConnection< T >::iIndex.

◆ total_num_connections()

template<typename TValueType >
size_t ug::SparseMatrix< TValueType >::total_num_connections ( ) const
inline

returns the total number of connections

References ug::SparseMatrix< TValueType >::nnz.

Referenced by ug::SparseMatrix< TValueType >::get_crs().

Friends And Related Function Documentation

◆ operator<<

template<typename TValueType >
std::ostream& operator<< ( std::ostream &  out,
const SparseMatrix< TValueType > &  m 
)
friend

Member Data Documentation

◆ bNeedsValues

template<typename TValueType >
bool ug::SparseMatrix< TValueType >::bNeedsValues
protected

◆ cols

◆ fragmented

template<typename TValueType >
size_t ug::SparseMatrix< TValueType >::fragmented
protected

◆ iIterators

template<typename TValueType >
int ug::SparseMatrix< TValueType >::iIterators
mutableprotected

◆ m_numCols

template<typename TValueType >
int ug::SparseMatrix< TValueType >::m_numCols
protected

◆ maxValues

template<typename TValueType >
int ug::SparseMatrix< TValueType >::maxValues
protected

◆ nnz

◆ nrOfRowIterators

template<typename TValueType >
std::vector<int> ug::SparseMatrix< TValueType >::nrOfRowIterators
mutable

◆ rowEnd

◆ rowMax

template<typename TValueType >
std::vector<int> ug::SparseMatrix< TValueType >::rowMax
protected

◆ rowStart

◆ values


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