Isorropia: Partitioning, Load Balancing and more
|
An implementation of the Matcher interface that operates on Epetra matrices and Graphs. More...
#include <Isorropia_EpetraMatcher.hpp>
Public Member Functions | |
Matcher (const Epetra_CrsMatrix *, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList")) | |
Constructor. More... | |
Matcher (Teuchos::RCP< const Epetra_CrsMatrix >, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList")) | |
Constructor. More... | |
Matcher (const Epetra_CrsGraph *, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList")) | |
Constructor. More... | |
Matcher (Teuchos::RCP< const Epetra_CrsGraph >, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList")) | |
Constructor. More... | |
virtual | ~Matcher () |
Destructor. More... | |
void | getMatchedColumnsForRowsCopy (int, int &, int *) const |
Copies the matched columns corresponding to each row in a user given array. More... | |
void | getMatchedRowsForColumnsCopy (int, int &, int *) const |
Copies the matched rows corresponding to each column in a user given array. More... | |
int | getNumberOfMatchedVertices () |
Teuchos::RCP< Epetra_CrsMatrix > | applyRowPermutation () |
Applies the row permutation from matching and returns a new matrix. More... | |
Teuchos::RCP< Epetra_CrsMatrix > | applyColumnPermutation () |
Applies the column permutation from matching and returns a new matrix. More... | |
int | match () |
Provides the column map which is actually the complete column permutation. More... | |
Private Member Functions | |
void | delete_matched_v () |
void | complete_nonperfect_permutation () |
int | SGM () |
int | match_dfs () |
int | match_hk () |
int | construct_layered_graph () |
int | find_set_del_M () |
int | recursive_path_finder (int, int) |
int | dfs_path_finder (int) |
int | dfs_augment () |
int | augment_matching (int) |
int | DW_phase () |
Private Attributes | |
int * | mateU_ |
int * | mateV_ |
int * | Queue_ |
int * | LV_ |
int * | LU_ |
int * | unmatchedU_ |
int * | parent_ |
int * | lookahead_ |
int * | CRS_pointers_ |
int * | CRS_indices_ |
double * | CRS_vals_ |
bool | finish_ |
int | U_ |
int | V_ |
int | E_ |
int | avgDegU_ |
int | k_star_ |
int | icm_ |
int | BFSInd_ |
int | numThread_ |
int | Qst_ |
int | Qend_ |
int | matched_ |
int | choice_ |
const Epetra_CrsMatrix * | A_ |
An implementation of the Matcher interface that operates on Epetra matrices and Graphs.
One of the use of Maximum Cardinality Matching is that it provides nonzero diagonal for the sparse matrices. This multithreaded version of the matching algorithms provides an interface to solve the Bipartite Matching problem as well as it also provides permutation to get zero free diagonal for input sparse matrices.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
int Isorropia::Epetra::Matcher::getNumberOfMatchedVertices | ( | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |