#include <map_matrix.h>
| Public Types | |
| typedef std::map< KEY_TYPE_COL, 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_ROW, std::map< KEY_TYPE_COL, 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 | |
| MapMatrixMixed () | |
| Default (empty) constructor.  More... | |
| void | operator= (const MapMatrixMixed &) | 
| Broken assignment operator.  More... | |
| MapMatrixMixed (const MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE > &map_mat) | |
| Copy constructor.  More... | |
| void | copy_column (const KEY_TYPE_COL &j, std::map< KEY_TYPE_ROW, 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_ROW &i, const KEY_TYPE_COL &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_ROW &i, const KEY_TYPE_COL &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... | |
| Protected Member Functions | |
| VALUE_TYPE * | entry_pt (const KEY_TYPE_ROW &i, const KEY_TYPE_COL &j) | 
| Return pointer to entry.  More... | |
| Protected Attributes | |
| std::map< KEY_TYPE_ROW, std::map< KEY_TYPE_COL, VALUE_TYPE > *> | Row_pt | 
MapMatrixMixed is a generalised, STL-map-based, sparse(ish) matrix class with mixed indices
The matrix is indexed by indices of type KEY_TYPE_ROW and KEY_TYPE_COL and has entries of type VALUE_TYPE.
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 114 of file map_matrix.h.
| typedef InnerMapMixed::const_iterator oomph::MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE >::ConstInnerMixedIt | 
Typedef to keep the code more readable const version.
Definition at line 135 of file map_matrix.h.
| typedef OuterMapMixed::const_iterator oomph::MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE >::ConstOuterMixedIt | 
Typedef to keep the code more readable const version.
Definition at line 145 of file map_matrix.h.
| typedef std::map<KEY_TYPE_COL,VALUE_TYPE> oomph::MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE >::InnerMapMixed | 
Typedef to keep the code more readable.
Definition at line 129 of file map_matrix.h.
| typedef InnerMapMixed::iterator oomph::MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE >::InnerMixedIt | 
Typedef to keep the code more readable.
Definition at line 132 of file map_matrix.h.
| typedef std::map<KEY_TYPE_ROW,std::map<KEY_TYPE_COL,VALUE_TYPE>*> oomph::MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE >::OuterMapMixed | 
Typedef to keep the code more readable.
Definition at line 139 of file map_matrix.h.
| typedef OuterMapMixed::iterator oomph::MapMatrixMixed< KEY_TYPE_ROW, KEY_TYPE_COL, VALUE_TYPE >::OuterMixedIt | 
Typedef to keep the code more readable.
Definition at line 142 of file map_matrix.h.
| 
 | inline | 
Default (empty) constructor.
Definition at line 120 of file map_matrix.h.
| 
 | inline | 
Copy constructor.
Definition at line 149 of file map_matrix.h.
| 
 | inlinevirtual | 
Destructor.
Definition at line 206 of file map_matrix.h.
| 
 | inline | 
Wipe all entries.
Definition at line 221 of file map_matrix.h.
| 
 | inline | 
Copy a single column into its own map.
Definition at line 182 of file map_matrix.h.
| 
 | inlineprotected | 
Return pointer to entry.
Definition at line 420 of file map_matrix.h.
Referenced by oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::operator()().
| 
 | inline | 
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.
Definition at line 248 of file map_matrix.h.
| 
 | inline | 
Work out number of non-`zero' entries.
Definition at line 306 of file map_matrix.h.
| 
 | inline | 
Work out number of non-`zero' entries, const version.
Definition at line 335 of file map_matrix.h.
| 
 | inline | 
Return (reference to) entry. Careful: If the entry does not exist then it is created and set to zero.
Definition at line 239 of file map_matrix.h.
| 
 | inline | 
Broken assignment operator.
Definition at line 123 of file map_matrix.h.
| 
 | inline | 
Dump all non-`zero' entries to file. Output is in the format `i', `j', `entry[i][j]'.
Definition at line 274 of file map_matrix.h.
| 
 | inline | 
Work out total number of entries.
Definition at line 367 of file map_matrix.h.
| 
 | inline | 
Work out total number of entries const version.
Definition at line 392 of file map_matrix.h.
| 
 | protected | 
Here's the generalised matrix structure: A map of pointers to the maps that hold the entries in each row.
Definition at line 440 of file map_matrix.h.
Referenced by oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::clear(), oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::copy_column(), oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::entry_pt(), oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::get(), oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::nnz(), oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::output(), oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::size(), and oomph::MapMatrixMixed< unsigned, unsigned, oomph::CRDoubleMatrix * >::~MapMatrixMixed().