Classes | Public Types | Public Member Functions | Protected Types | Protected Attributes
DynamicSparseMatrix< _Scalar, _Options, _Index > Class Template Reference

A sparse matrix class designed for matrix assembly purpose. More...

#include <DynamicSparseMatrix.h>

Inheritance diagram for DynamicSparseMatrix< _Scalar, _Options, _Index >:
Inheritance graph
[legend]

List of all members.

Classes

class  InnerIterator

Public Types

enum  { Options = _Options }
typedef MappedSparseMatrix
< Scalar, Flags
Map

Public Member Functions

std::vector< CompressedStorage
< Scalar, Index > > & 
_data ()
const std::vector
< CompressedStorage< Scalar,
Index > > & 
_data () const
Scalar coeff (Index row, Index col) const
ScalarcoeffRef (Index row, Index col)
Index cols () const
 DynamicSparseMatrix ()
 DynamicSparseMatrix (Index rows, Index cols)
template<typename OtherDerived >
 DynamicSparseMatrix (const SparseMatrixBase< OtherDerived > &other)
 DynamicSparseMatrix (const DynamicSparseMatrix &other)
EIGEN_DEPRECATED void endFill ()
EIGEN_DEPRECATED Scalarfill (Index row, Index col)
EIGEN_DEPRECATED Scalarfillrand (Index row, Index col)
void finalize ()
Index innerNonZeros (Index j) const
Index innerSize () const
Scalarinsert (Index row, Index col)
ScalarinsertBack (Index row, Index col)
ScalarinsertBackByOuterInner (Index outer, Index inner)
Index nonZeros () const
DynamicSparseMatrixoperator= (const DynamicSparseMatrix &other)
Index outerSize () const
void prune (Scalar reference, RealScalar epsilon=NumTraits< RealScalar >::dummy_precision())
void reserve (Index reserveSize=1000)
void resize (Index rows, Index cols)
void resizeAndKeepData (Index rows, Index cols)
Index rows () const
void setZero ()
EIGEN_DEPRECATED void startFill (Index reserveSize=1000)
void startVec (Index)
void swap (DynamicSparseMatrix &other)
 ~DynamicSparseMatrix ()

Protected Types

typedef DynamicSparseMatrix
< Scalar,(Flags &~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> 
TransposedSparseMatrix

Protected Attributes

std::vector< CompressedStorage
< Scalar, Index > > 
m_data
Index m_innerSize

Detailed Description

template<typename _Scalar, int _Options, typename _Index>
class DynamicSparseMatrix< _Scalar, _Options, _Index >

A sparse matrix class designed for matrix assembly purpose.

Parameters:
_Scalarthe scalar type, i.e. the type of the coefficients

Unlike SparseMatrix, this class provides a much higher degree of flexibility. In particular, it allows random read/write accesses in log(rho*outer_size) where rho is the probability that a coefficient is nonzero and outer_size is the number of columns if the matrix is column-major and the number of rows otherwise.

Internally, the data are stored as a std::vector of compressed vector. The performances of random writes might decrease as the number of nonzeros per inner-vector increase. In practice, we observed very good performance till about 100 nonzeros/vector, and the performance remains relatively good till 500 nonzeros/vectors.

See also:
SparseMatrix

Definition at line 67 of file DynamicSparseMatrix.h.


Member Typedef Documentation

template<typename _Scalar, int _Options, typename _Index>
typedef MappedSparseMatrix<Scalar,Flags> DynamicSparseMatrix< _Scalar, _Options, _Index >::Map

Definition at line 75 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
typedef DynamicSparseMatrix<Scalar,(Flags&~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> DynamicSparseMatrix< _Scalar, _Options, _Index >::TransposedSparseMatrix [protected]

Definition at line 84 of file DynamicSparseMatrix.h.


Member Enumeration Documentation

template<typename _Scalar, int _Options, typename _Index>
anonymous enum
Enumerator:
Options 

Definition at line 78 of file DynamicSparseMatrix.h.


Constructor & Destructor Documentation

template<typename _Scalar, int _Options, typename _Index>
DynamicSparseMatrix< _Scalar, _Options, _Index >::DynamicSparseMatrix ( ) [inline]

Definition at line 235 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
DynamicSparseMatrix< _Scalar, _Options, _Index >::DynamicSparseMatrix ( Index  rows,
Index  cols 
) [inline]

Definition at line 241 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
template<typename OtherDerived >
DynamicSparseMatrix< _Scalar, _Options, _Index >::DynamicSparseMatrix ( const SparseMatrixBase< OtherDerived > &  other) [inline, explicit]

Definition at line 248 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
DynamicSparseMatrix< _Scalar, _Options, _Index >::DynamicSparseMatrix ( const DynamicSparseMatrix< _Scalar, _Options, _Index > &  other) [inline]

Definition at line 254 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
DynamicSparseMatrix< _Scalar, _Options, _Index >::~DynamicSparseMatrix ( ) [inline]

Destructor

Definition at line 283 of file DynamicSparseMatrix.h.


Member Function Documentation

template<typename _Scalar, int _Options, typename _Index>
std::vector<CompressedStorage<Scalar,Index> >& DynamicSparseMatrix< _Scalar, _Options, _Index >::_data ( ) [inline]

Definition at line 97 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
const std::vector<CompressedStorage<Scalar,Index> >& DynamicSparseMatrix< _Scalar, _Options, _Index >::_data ( ) const [inline]

Definition at line 98 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Scalar DynamicSparseMatrix< _Scalar, _Options, _Index >::coeff ( Index  row,
Index  col 
) const [inline]
Returns:
the coefficient value at given position row, col This operation involes a log(rho*outer_size) binary search.

Definition at line 103 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Scalar& DynamicSparseMatrix< _Scalar, _Options, _Index >::coeffRef ( Index  row,
Index  col 
) [inline]
Returns:
a reference to the coefficient value at given position row, col This operation involes a log(rho*outer_size) binary search. If the coefficient does not exist yet, then a sorted insertion into a sequential buffer is performed.

Definition at line 114 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::cols ( void  ) const [inline]
Returns:
the number of columns.
See also:
rows(), ColsAtCompileTime

Reimplemented from SparseMatrixBase< DynamicSparseMatrix< _Scalar, _Options, _Index > >.

Definition at line 92 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
EIGEN_DEPRECATED void DynamicSparseMatrix< _Scalar, _Options, _Index >::endFill ( ) [inline]
Deprecated:
use finalize() Does nothing. Provided for compatibility with SparseMatrix.

Definition at line 323 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
EIGEN_DEPRECATED Scalar& DynamicSparseMatrix< _Scalar, _Options, _Index >::fill ( Index  row,
Index  col 
) [inline]
Deprecated:
use insert() inserts a nonzero coefficient at given coordinates row, col and returns its reference assuming that: 1 - the coefficient does not exist yet 2 - this the coefficient with greater inner coordinate for the given outer coordinate. In other words, assuming *this is column-major, then there must not exists any nonzero coefficient of coordinates i x col such that i >= row. Otherwise the matrix is invalid.
See also:
fillrand(), coeffRef()

Definition at line 304 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
EIGEN_DEPRECATED Scalar& DynamicSparseMatrix< _Scalar, _Options, _Index >::fillrand ( Index  row,
Index  col 
) [inline]
Deprecated:
use insert() Like fill() but with random inner coordinates. Compared to the generic coeffRef(), the unique limitation is that we assume the coefficient does not exist yet.

Definition at line 316 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::finalize ( ) [inline]

Does nothing: provided for compatibility with SparseMatrix

Definition at line 196 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::innerNonZeros ( Index  j) const [inline]

Definition at line 95 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::innerSize ( ) const [inline]
Returns:
the size of the inner dimension according to the storage order, i.e., the number of rows for a columns major matrix, and the number of cols otherwise

Reimplemented from SparseMatrixBase< DynamicSparseMatrix< _Scalar, _Options, _Index > >.

Definition at line 93 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Scalar& DynamicSparseMatrix< _Scalar, _Options, _Index >::insert ( Index  row,
Index  col 
) [inline]

Definition at line 175 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Scalar& DynamicSparseMatrix< _Scalar, _Options, _Index >::insertBack ( Index  row,
Index  col 
) [inline]
Returns:
a reference to the non zero coefficient at position row, col assuming that:
  • the nonzero does not already exist
  • the new coefficient is the last one of the given inner vector.
See also:
insert, insertBackByOuterInner

Definition at line 160 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Scalar& DynamicSparseMatrix< _Scalar, _Options, _Index >::insertBackByOuterInner ( Index  outer,
Index  inner 
) [inline]
See also:
insertBack

Definition at line 166 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::nonZeros ( ) const [inline]
Returns:
the number of non zero coefficients

Reimplemented from SparseMatrixBase< DynamicSparseMatrix< _Scalar, _Options, _Index > >.

Definition at line 130 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
DynamicSparseMatrix& DynamicSparseMatrix< _Scalar, _Options, _Index >::operator= ( const DynamicSparseMatrix< _Scalar, _Options, _Index > &  other) [inline]
template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::outerSize ( ) const [inline]
Returns:
the size of the storage major dimension, i.e., the number of columns for a columns major matrix, and the number of rows otherwise

Reimplemented from SparseMatrixBase< DynamicSparseMatrix< _Scalar, _Options, _Index > >.

Definition at line 94 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::prune ( Scalar  reference,
RealScalar  epsilon = NumTraits<RealScalar>::dummy_precision() 
) [inline]

Suppress all nonzeros which are smaller than reference under the tolerence epsilon

Definition at line 199 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::reserve ( Index  reserveSize = 1000) [inline]

Definition at line 140 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::resize ( Index  rows,
Index  cols 
) [inline]

Resize the matrix without preserving the data (the matrix is set to zero)

Definition at line 207 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::resizeAndKeepData ( Index  rows,
Index  cols 
) [inline]

Definition at line 218 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::rows ( void  ) const [inline]
Returns:
the number of rows.
See also:
cols(), RowsAtCompileTime

Reimplemented from SparseMatrixBase< DynamicSparseMatrix< _Scalar, _Options, _Index > >.

Definition at line 91 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::setZero ( ) [inline]

Definition at line 123 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
EIGEN_DEPRECATED void DynamicSparseMatrix< _Scalar, _Options, _Index >::startFill ( Index  reserveSize = 1000) [inline]
Deprecated:
Set the matrix to zero and reserve the memory for reserveSize nonzero coefficients.

Definition at line 289 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::startVec ( Index  ) [inline]

Does nothing: provided for compatibility with SparseMatrix

Definition at line 153 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
void DynamicSparseMatrix< _Scalar, _Options, _Index >::swap ( DynamicSparseMatrix< _Scalar, _Options, _Index > &  other) [inline]

Definition at line 260 of file DynamicSparseMatrix.h.


Member Data Documentation

template<typename _Scalar, int _Options, typename _Index>
std::vector<CompressedStorage<Scalar,Index> > DynamicSparseMatrix< _Scalar, _Options, _Index >::m_data [protected]

Definition at line 87 of file DynamicSparseMatrix.h.

template<typename _Scalar, int _Options, typename _Index>
Index DynamicSparseMatrix< _Scalar, _Options, _Index >::m_innerSize [protected]

Definition at line 86 of file DynamicSparseMatrix.h.


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


re_vision
Author(s): Dorian Galvez-Lopez
autogenerated on Sun Jan 5 2014 11:34:01