#include <map_matrix.h>
Inheritance diagram for oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >:Public Types | |
| typedef std::map< KEY_TYPE, VALUE_TYPE > | InnerMap |
| Typedef to keep the code more readable. More... | |
| typedef InnerMap::iterator | InnerIt |
| Typedef to keep the code more readable. More... | |
| typedef InnerMap::const_iterator | ConstInnerIt |
| Typedef to keep the code more readable. More... | |
| typedef std::map< KEY_TYPE, std::map< KEY_TYPE, VALUE_TYPE > * > | OuterMap |
| Typedef to keep the code more readable. More... | |
| typedef OuterMap::iterator | OuterIt |
| Typedef to keep the code more readable. More... | |
| typedef OuterMap::const_iterator | ConstOuterIt |
| Typedef to keep the code more readable. More... | |
Public Types inherited from oomph::MapMatrixMixed< KEY_TYPE, KEY_TYPE, VALUE_TYPE > | |
| typedef std::map< KEY_TYPE, VALUE_TYPE > | InnerMapMixed |
| Typedef to keep the code more readable. More... | |
| typedef InnerMapMixed::iterator | InnerMixedIt |
| Typedef to keep the code more readable. More... | |
| typedef InnerMapMixed::const_iterator | ConstInnerMixedIt |
| Typedef to keep the code more readable const version. More... | |
| typedef std::map< KEY_TYPE, std::map< KEY_TYPE, VALUE_TYPE > *> | OuterMapMixed |
| Typedef to keep the code more readable. More... | |
| typedef OuterMapMixed::iterator | OuterMixedIt |
| Typedef to keep the code more readable. More... | |
| typedef OuterMapMixed::const_iterator | ConstOuterMixedIt |
| Typedef to keep the code more readable const version. More... | |
Public Member Functions | |
| MapMatrix () | |
| Default (empty) constructor. More... | |
| MapMatrix (const MapMatrix< KEY_TYPE, VALUE_TYPE > &map_mat) | |
| Copy constructor. More... | |
| void | operator= (const MapMatrix &) |
| Broken assignment operator. More... | |
Public Member Functions inherited from oomph::MapMatrixMixed< KEY_TYPE, KEY_TYPE, VALUE_TYPE > | |
| MapMatrixMixed () | |
| Default (empty) constructor. More... | |
| MapMatrixMixed (const MapMatrixMixed< KEY_TYPE, KEY_TYPE, VALUE_TYPE > &map_mat) | |
| Copy constructor. More... | |
| void | operator= (const MapMatrixMixed &) |
| Broken assignment operator. More... | |
| void | copy_column (const KEY_TYPE &j, std::map< KEY_TYPE, VALUE_TYPE > &copied_map) |
| Copy a single column into its own map. More... | |
| virtual | ~MapMatrixMixed () |
| Destructor. More... | |
| void | clear () |
| Wipe all entries. More... | |
| VALUE_TYPE & | operator() (const KEY_TYPE &i, const KEY_TYPE &j) |
| Return (reference to) entry. Careful: If the entry does not exist then it is created and set to zero. More... | |
| VALUE_TYPE | get (const KEY_TYPE &i, const KEY_TYPE &j) const |
| Get an element corresponding to the key (i,j) Searches the container for an element with a key equivalent to (i,j) and returns the element if found, otherwise the default 0 value for the value type is returned. The container is not modified. More... | |
| void | output (std::ostream &outfile) |
| Dump all non-`zero' entries to file. Output is in the format `i', `j', `entry[i][j]'. More... | |
| unsigned long | nnz () |
| Work out number of non-`zero' entries. More... | |
| unsigned long | nnz () const |
| Work out number of non-`zero' entries, const version. More... | |
| unsigned long | size () |
| Work out total number of entries. More... | |
| unsigned long | size () const |
| Work out total number of entries const version. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from oomph::MapMatrixMixed< KEY_TYPE, KEY_TYPE, VALUE_TYPE > | |
| VALUE_TYPE * | entry_pt (const KEY_TYPE &i, const KEY_TYPE &j) |
| Return pointer to entry. More... | |
Protected Attributes inherited from oomph::MapMatrixMixed< KEY_TYPE, KEY_TYPE, VALUE_TYPE > | |
| std::map< KEY_TYPE, std::map< KEY_TYPE, VALUE_TYPE > * > | Row_pt |
MapMatrix is a generalised, STL-map-based, sparse(-ish) matrix class.
The matrix is indexed by indices of type KEY_TYPE and has entries of type VALUE_TYPE. It is a specialisation of the class MapMatrixMixed. Please implement future functions in that class.
Careful: If a zero entry is referenced then it is created in memory. Therefore this isn't really a practical sparse matrix scheme. Do not loop over `all' possible indices as even looking at them will inflate the matrix until it occupies as much space as a full one – use (modification of) output routine to retrieve all nonzero entries.
However, this is not a serious restriction, as the main purpose of this class is to allow non-integer indices.
Example of usage:
Definition at line 520 of file map_matrix.h.
| typedef InnerMap::const_iterator oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >::ConstInnerIt |
Typedef to keep the code more readable.
Definition at line 535 of file map_matrix.h.
| typedef OuterMap::const_iterator oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >::ConstOuterIt |
Typedef to keep the code more readable.
Definition at line 544 of file map_matrix.h.
| typedef InnerMap::iterator oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >::InnerIt |
Typedef to keep the code more readable.
Definition at line 532 of file map_matrix.h.
| typedef std::map<KEY_TYPE,VALUE_TYPE> oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >::InnerMap |
Typedef to keep the code more readable.
Definition at line 526 of file map_matrix.h.
| typedef OuterMap::iterator oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >::OuterIt |
Typedef to keep the code more readable.
Definition at line 541 of file map_matrix.h.
| typedef std::map<KEY_TYPE,std::map<KEY_TYPE,VALUE_TYPE>*> oomph::MapMatrix< KEY_TYPE, VALUE_TYPE >::OuterMap |
Typedef to keep the code more readable.
Definition at line 538 of file map_matrix.h.
|
inline |
Default (empty) constructor.
Definition at line 526 of file map_matrix.h.
|
inline |
Copy constructor.
Definition at line 547 of file map_matrix.h.
|
inline |
Broken assignment operator.
Definition at line 572 of file map_matrix.h.