MRPT logo

mrpt::math::CSparseMatrixTemplate< T > Class Template Reference

A sparse matrix container (with cells of any type), with iterators. More...

#include <mrpt/math/CSparseMatrixTemplate.h>

Inheritance diagram for mrpt::math::CSparseMatrixTemplate< T >:

mrpt::math::CSparseSymmetricalMatrix< T >

List of all members.

Public Types

typedef std::map< std::pair
< size_t, size_t >, T > 
SparseMatrixMap
 Internal map type, used to store the actual matrix.
typedef
SparseMatrixMap::const_iterator 
const_iterator
 Const iterator to move through the matrix.
typedef
SparseMatrixMap::const_reverse_iterator 
const_reverse_iterator
 Const reverse iterator to move through the matrix.

Public Member Functions

 CSparseMatrixTemplate ()
 Basic constructor with no data.
 CSparseMatrixTemplate (size_t nR, size_t nC)
 Constructor with default size.
operator() (size_t r, size_t c) const
 Element access operator.
T & operator() (size_t r, size_t c)
 Reference access operator.
size_t getRowCount () const
 Returns the amount of rows in this matrix.
size_t getColumnCount () const
 Returns the amount of columns in this matrix.
void getRow (size_t nRow, std::vector< T > &vec) const
 Extracts a full row from the matrix.
void getColumn (size_t nCol, std::vector< T > &vec) const
 Extracts a full column from the matrix.
void insert (size_t row, size_t column, const T &obj)
 Inserts an element into the matrix.
const_iterator begin () const
 Returns an iterator which points to the starting point of the matrix.
const_iterator end () const
 Returns an iterator which points to the end of the matrix.
const_reverse_iterator rbegin () const
 Returns an iterator which points to the end of the matrix, and can be used to move backwards.
const_reverse_iterator rend () const
 Returns an iterator which points to the starting point of the matrix, although it's the upper limit of the matrix since it's a reverse iterator.
void setRow (size_t nRow, const std::vector< T > &vec, const T &nullObject=T())
 Inserts a full row into the matrix.
void setColumn (size_t nCol, const std::vector< T > &vec, const T &nullObject=T())
 Inserts a full column into the matrix.
void resize (size_t nRows, size_t nCols)
 Changes the size of the matrix.
CSparseMatrixTemplate< T > operator() (size_t firstRow, size_t lastRow, size_t firstColumn, size_t lastColumn) const
 Extracts a submatrix form the matrix.
void getAsVector (std::vector< T > &vec) const
 Gets a vector containing all the elements of the matrix, ignoring their position.
size_t getNonNullElements () const
 Gets the amount of non-null elements inside the matrix.
size_t getNullElements () const
 Gets the amount of null elements inside the matrix.
bool isNull (size_t nRow, size_t nCol) const
 Checks whether an element of the matrix is the default object.
bool isNotNull (size_t nRow, size_t nCol) const
 Checks whether an element of the matrix is not the default object.
void clear ()
 Completely removes all elements, although maintaining the matrix's size.
void purge (T nullObject=T())
 Checks each non-null elements against the basic objects, erasing unnecesary references to it.

Protected Attributes

size_t mRows
 Size of the matrix.
size_t mColumns
SparseMatrixMap objectList
 Actual matrix.


Detailed Description

template<class T>
class mrpt::math::CSparseMatrixTemplate< T >

A sparse matrix container (with cells of any type), with iterators.

See also:
CSparseSymmetricalMatrix

Definition at line 40 of file CSparseMatrixTemplate.h.


Member Typedef Documentation

template<class T >
typedef SparseMatrixMap::const_iterator mrpt::math::CSparseMatrixTemplate< T >::const_iterator

Const iterator to move through the matrix.

See also:
CSparseMatrixTemplate::const_reverse_iterator

Definition at line 51 of file CSparseMatrixTemplate.h.

template<class T >
typedef SparseMatrixMap::const_reverse_iterator mrpt::math::CSparseMatrixTemplate< T >::const_reverse_iterator

Const reverse iterator to move through the matrix.

See also:
CSparseMatrixTemplate::const_iterator

Definition at line 56 of file CSparseMatrixTemplate.h.

template<class T >
typedef std::map<std::pair<size_t,size_t>,T> mrpt::math::CSparseMatrixTemplate< T >::SparseMatrixMap

Internal map type, used to store the actual matrix.

Definition at line 46 of file CSparseMatrixTemplate.h.


Constructor & Destructor Documentation

template<class T >
mrpt::math::CSparseMatrixTemplate< T >::CSparseMatrixTemplate (  )  [inline]

Basic constructor with no data.

Size is set to (0,0).

Definition at line 70 of file CSparseMatrixTemplate.h.

template<class T >
mrpt::math::CSparseMatrixTemplate< T >::CSparseMatrixTemplate ( size_t  nR,
size_t  nC 
) [inline]

Constructor with default size.

Definition at line 74 of file CSparseMatrixTemplate.h.


Member Function Documentation

template<class T >
const_iterator mrpt::math::CSparseMatrixTemplate< T >::begin (  )  const [inline]

Returns an iterator which points to the starting point of the matrix.

It's a const_iterator, so that the usar isn't able to modify the matrix content into an invalid state.

See also:
end,rbegin,rend

Definition at line 157 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

Referenced by mrpt::math::CSparseMatrixTemplate< T >::operator()(), and mrpt::math::CSparseMatrixTemplate< T >::purge().

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::clear ( void   )  [inline]

Completely removes all elements, although maintaining the matrix's size.

Definition at line 285 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

Referenced by mrpt::math::intersect().

template<class T >
const_iterator mrpt::math::CSparseMatrixTemplate< T >::end (  )  const [inline]

Returns an iterator which points to the end of the matrix.

It's a const_iterator, so that the usar isn't able to modify the matrix content into an invalid state.

See also:
begin,rbegin,rend

Definition at line 164 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

Referenced by mrpt::math::CSparseSymmetricalMatrix< T >::operator()(), mrpt::math::CSparseMatrixTemplate< T >::operator()(), and mrpt::math::CSparseMatrixTemplate< T >::purge().

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::getAsVector ( std::vector< T > &  vec  )  const [inline]

Gets a vector containing all the elements of the matrix, ignoring their position.

Definition at line 245 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::getColumn ( size_t  nCol,
std::vector< T > &  vec 
) const [inline]

Extracts a full column from the matrix.

See also:
getColumnCount,getRow,setColumn
Exceptions:
std::logic_error on out of range.

Definition at line 131 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mColumns, mrpt::math::CSparseMatrixTemplate< T >::mRows, and mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
size_t mrpt::math::CSparseMatrixTemplate< T >::getColumnCount (  )  const [inline]

Returns the amount of columns in this matrix.

See also:
getRowCount

Definition at line 101 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mColumns.

template<class T >
size_t mrpt::math::CSparseMatrixTemplate< T >::getNonNullElements (  )  const [inline]

Gets the amount of non-null elements inside the matrix.

See also:
getNullElements,isNull,isNotNull

Definition at line 255 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

Referenced by mrpt::math::CSparseMatrixTemplate< T >::getNullElements(), and mrpt::math::intersect().

template<class T >
size_t mrpt::math::CSparseMatrixTemplate< T >::getNullElements (  )  const [inline]

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::getRow ( size_t  nRow,
std::vector< T > &  vec 
) const [inline]

Extracts a full row from the matrix.

See also:
getRowCount,getColumn,setRow
Exceptions:
std::logic_error on out of range.

Definition at line 109 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mColumns, mrpt::math::CSparseMatrixTemplate< T >::mRows, and mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
size_t mrpt::math::CSparseMatrixTemplate< T >::getRowCount (  )  const [inline]

Returns the amount of rows in this matrix.

See also:
getColumnCount,getRow

Definition at line 94 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mRows.

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::insert ( size_t  row,
size_t  column,
const T &  obj 
) [inline]

Inserts an element into the matrix.

See also:
operator()(size_t,size_t)

Definition at line 149 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::operator()().

template<class T >
bool mrpt::math::CSparseMatrixTemplate< T >::isNotNull ( size_t  nRow,
size_t  nCol 
) const [inline]

template<class T >
bool mrpt::math::CSparseMatrixTemplate< T >::isNull ( size_t  nRow,
size_t  nCol 
) const [inline]

Checks whether an element of the matrix is the default object.

See also:
getNonNullElements,getNullElements,isNotNull
Exceptions:
std::logic_error on out of range

Definition at line 270 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mColumns, mrpt::math::CSparseMatrixTemplate< T >::mRows, and mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
CSparseMatrixTemplate<T> mrpt::math::CSparseMatrixTemplate< T >::operator() ( size_t  firstRow,
size_t  lastRow,
size_t  firstColumn,
size_t  lastColumn 
) const [inline]

template<class T >
T& mrpt::math::CSparseMatrixTemplate< T >::operator() ( size_t  r,
size_t  c 
) [inline]

template<class T >
T mrpt::math::CSparseMatrixTemplate< T >::operator() ( size_t  r,
size_t  c 
) const [inline]

Element access operator.

Doesn't check bounds.

Reimplemented in mrpt::math::CSparseSymmetricalMatrix< T >.

Definition at line 78 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

Referenced by mrpt::math::CSparseMatrixTemplate< T >::insert().

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::purge ( nullObject = T()  )  [inline]

Checks each non-null elements against the basic objects, erasing unnecesary references to it.

Definition at line 291 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::begin(), mrpt::math::CSparseMatrixTemplate< T >::end(), and mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
const_reverse_iterator mrpt::math::CSparseMatrixTemplate< T >::rbegin (  )  const [inline]

Returns an iterator which points to the end of the matrix, and can be used to move backwards.

It's a const_reverse_iterator, so that the usar isn't able to modify the matrix content into an invalid state.

See also:
begin,end,rend

Definition at line 171 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
const_reverse_iterator mrpt::math::CSparseMatrixTemplate< T >::rend (  )  const [inline]

Returns an iterator which points to the starting point of the matrix, although it's the upper limit of the matrix since it's a reverse iterator.

Also, it's a const_reverse_iterator, so that the usar isn't able to modify the matrix content into an invalid state.

See also:
begin,end,rbegin

Definition at line 178 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::resize ( size_t  nRows,
size_t  nCols 
) [inline]

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::setColumn ( size_t  nCol,
const std::vector< T > &  vec,
const T &  nullObject = T() 
) [inline]

Inserts a full column into the matrix.

The third argument is used to specify a null object (which won't be inserted, since the matrix is sparse).

See also:
getColumn
Exceptions:
std::logic_error on out of range or wrong sized vector.

Definition at line 202 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mColumns, mrpt::math::CSparseMatrixTemplate< T >::mRows, and mrpt::math::CSparseMatrixTemplate< T >::objectList.

template<class T >
void mrpt::math::CSparseMatrixTemplate< T >::setRow ( size_t  nRow,
const std::vector< T > &  vec,
const T &  nullObject = T() 
) [inline]

Inserts a full row into the matrix.

The third argument is used to specify a null object (which won't be inserted, since the matrix is sparse).

See also:
getRow
Exceptions:
std::logic_error on out of range or wrong sized vector.

Definition at line 186 of file CSparseMatrixTemplate.h.

References mrpt::math::CSparseMatrixTemplate< T >::mColumns, mrpt::math::CSparseMatrixTemplate< T >::mRows, and mrpt::math::CSparseMatrixTemplate< T >::objectList.


Member Data Documentation

template<class T >
size_t mrpt::math::CSparseMatrixTemplate< T >::mColumns [protected]

template<class T >
size_t mrpt::math::CSparseMatrixTemplate< T >::mRows [protected]

template<class T >
SparseMatrixMap mrpt::math::CSparseMatrixTemplate< T >::objectList [protected]




Page generated by Doxygen 1.5.7.1 for MRPT 0.7.1 SVN: at Mon Aug 17 22:58:25 EDT 2009