List of all members.
Static Public Member Functions
|static const char *||typeName ()|
|return a string name for the object type |
|static T *||clone (T *example, Epetra_DataAccess CV, const Epetra_BlockMap &map, int int_argument)|
|clone function accepts an example of the object being cloned, and enough constructor arguments to be able to create any of these: CrsMatrix, CrsGraph, Vector, MultiVector. |
|static void||replaceMap (T *obj, const Epetra_BlockMap &map)|
|replace the object's row-map (or if it's not a matrix, replace its only map) |
|static T *||produceColumnPermutation (Permutation< T > *perm, T *srcObj)|
|return new object, which is a column-permutation of srcObj |
Given a template parameter, we'll want to have the following operations available:
First the default definition, which catches all types "T", followed by some specializations for anticipated types. Any type other than the types specifically anticipated will be handled by this default definition, allowing the Permutation class to abort or return NULL where appropriate.
We define these trait structs in this file rather than in a separate file in an attempt to avoid some template-instantiation complications...
Definition at line 63 of file EpetraExt_Permutation.cpp.
|static const char* EpetraExt::Perm_traits< T >::typeName||(||)||
|static T* EpetraExt::Perm_traits< T >::clone||(||T *||example,|
|const Epetra_BlockMap &||map,|
clone function accepts an example of the object being cloned, and enough constructor arguments to be able to create any of these: CrsMatrix, CrsGraph, Vector, MultiVector.
And probably more later...
Why is an example object needed? For instance, if a MultiVector is created, we may want to know how many vectors it should contain...
|static void EpetraExt::Perm_traits< T >::replaceMap||(||T *||obj,|
|const Epetra_BlockMap &||map|
|static T* EpetraExt::Perm_traits< T >::produceColumnPermutation||(||Permutation< T > *||perm,|