COMBINATORIAL_BLAS  1.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Functions | Variables
BPMaximumMatching.cpp File Reference
#include "../CombBLAS.h"
#include <mpi.h>
#include <sys/time.h>
#include <iostream>
#include <functional>
#include <algorithm>
#include <vector>
#include <string>
#include <sstream>
#include "BPMaximalMatching.h"

Go to the source code of this file.

Classes

struct  VertexType< T >
 

Typedefs

typedef SpParMat< int64_t,
bool, SpDCCols< int64_t, bool > > 
PSpMat_Bool
 
typedef SpParMat< int64_t,
bool, SpDCCols< int32_t, bool > > 
PSpMat_s32p64
 
typedef SpParMat< int64_t,
int64_t, SpDCCols< int64_t,
int64_t > > 
PSpMat_Int64
 
typedef SpParMat< int64_t,
float, SpDCCols< int64_t,
float > > 
PSpMat_float
 

Functions

template<typename PARMAT >
void Symmetricize (PARMAT &A)
 
void maximumMatching (PSpMat_s32p64 &Aeff, FullyDistVec< int64_t, int64_t > &mateRow2Col, FullyDistVec< int64_t, int64_t > &mateCol2Row)
 
template<class IT , class NT >
bool isMaximalmatching (PSpMat_Int64 &A, FullyDistVec< IT, NT > &mateRow2Col, FullyDistVec< IT, NT > &mateCol2Row, FullyDistSpVec< int64_t, int64_t > unmatchedRow, FullyDistSpVec< int64_t, int64_t > unmatchedCol)
 
void removeIsolated (PSpMat_Bool &A)
 
template<class IT , class DER >
SpParMat< IT, bool, DER > PermMat (const FullyDistVec< IT, IT > &ri, const IT ncol)
 
template<class IT , class NT , class DER , typename _UnaryOperation >
SpParMat< IT, bool, DER > PermMat1 (const FullyDistSpVec< IT, NT > &ri, const IT ncol, _UnaryOperation __unop)
 
void ShowUsage ()
 
void GetOptions (char *argv[], int argc)
 
void showCurOptions ()
 
void experiment (PSpMat_s32p64 &A, PSpMat_s32p64 &AT, FullyDistVec< int64_t, int64_t > degCol)
 
void experiment1 (PSpMat_s32p64 &A, PSpMat_s32p64 &AT, FullyDistVec< int64_t, int64_t > degCol)
 
void experiment_maximal (PSpMat_s32p64 &A, PSpMat_s32p64 &AT, FullyDistVec< int64_t, int64_t > degCol)
 
int main (int argc, char *argv[])
 
void Augment1 (FullyDistVec< int64_t, int64_t > &mateRow2Col, FullyDistVec< int64_t, int64_t > &mateCol2Row, FullyDistVec< int64_t, int64_t > &parentsRow, FullyDistVec< int64_t, int64_t > &leaves)
 
template<typename IT , typename NT >
void Augment (FullyDistVec< int64_t, int64_t > &mateRow2Col, FullyDistVec< int64_t, int64_t > &mateCol2Row, FullyDistVec< int64_t, int64_t > &parentsRow, FullyDistVec< int64_t, int64_t > &leaves)
 
void pruneM (FullyDistSpVec< int64_t, VertexType > &fringeRow, FullyDistSpVec< int64_t, int64_t > &temp1)
 

Variables

bool prune
 
bool mvInvertMate
 
bool randMM
 
bool moreSplit
 
int init
 
bool randMaximal
 
bool fewexp
 

Typedef Documentation

typedef SpParMat< int64_t, bool, SpDCCols<int64_t,bool> > PSpMat_Bool

Definition at line 63 of file BPMaximumMatching.cpp.

typedef SpParMat< int64_t, float, SpDCCols<int64_t,float> > PSpMat_float

Definition at line 66 of file BPMaximumMatching.cpp.

Definition at line 65 of file BPMaximumMatching.cpp.

typedef SpParMat< int64_t, bool, SpDCCols<int32_t,bool> > PSpMat_s32p64

Definition at line 64 of file BPMaximumMatching.cpp.

Function Documentation

template<typename IT , typename NT >
void Augment ( FullyDistVec< int64_t, int64_t > &  mateRow2Col,
FullyDistVec< int64_t, int64_t > &  mateCol2Row,
FullyDistVec< int64_t, int64_t > &  parentsRow,
FullyDistVec< int64_t, int64_t > &  leaves 
)

Definition at line 828 of file BPMaximumMatching.cpp.

void Augment1 ( FullyDistVec< int64_t, int64_t > &  mateRow2Col,
FullyDistVec< int64_t, int64_t > &  mateCol2Row,
FullyDistVec< int64_t, int64_t > &  parentsRow,
FullyDistVec< int64_t, int64_t > &  leaves 
)

Definition at line 794 of file BPMaximumMatching.cpp.

void experiment ( PSpMat_s32p64 A,
PSpMat_s32p64 AT,
FullyDistVec< int64_t, int64_t degCol 
)

Definition at line 432 of file BPMaximumMatching.cpp.

void experiment1 ( PSpMat_s32p64 A,
PSpMat_s32p64 AT,
FullyDistVec< int64_t, int64_t degCol 
)

Definition at line 497 of file BPMaximumMatching.cpp.

void experiment_maximal ( PSpMat_s32p64 A,
PSpMat_s32p64 AT,
FullyDistVec< int64_t, int64_t degCol 
)

Definition at line 514 of file BPMaximumMatching.cpp.

void GetOptions ( char *  argv[],
int  argc 
)

Definition at line 381 of file BPMaximumMatching.cpp.

template<class IT , class NT >
bool isMaximalmatching ( PSpMat_Int64 A,
FullyDistVec< IT, NT > &  mateRow2Col,
FullyDistVec< IT, NT > &  mateCol2Row,
FullyDistSpVec< int64_t, int64_t unmatchedRow,
FullyDistSpVec< int64_t, int64_t unmatchedCol 
)
int main ( int  argc,
char *  argv[] 
)

Definition at line 581 of file BPMaximumMatching.cpp.

void maximumMatching ( PSpMat_s32p64 Aeff,
FullyDistVec< int64_t, int64_t > &  mateRow2Col,
FullyDistVec< int64_t, int64_t > &  mateCol2Row 
)

Definition at line 905 of file BPMaximumMatching.cpp.

template<class IT , class DER >
SpParMat<IT, bool, DER> PermMat ( const FullyDistVec< IT, IT > &  ri,
const IT  ncol 
)

Create a boolean matrix A (not necessarily a permutation matrix) Input: ri: a dense vector (actual values in FullyDistVec should be IT) ncol: number of columns in the output matrix A Output: a boolean matrix A with m=size(ri) and n=ncol (input) and A[k,ri[k]]=1

Definition at line 150 of file BPMaximumMatching.cpp.

template<class IT , class NT , class DER , typename _UnaryOperation >
SpParMat<IT, bool, DER> PermMat1 ( const FullyDistSpVec< IT, NT > &  ri,
const IT  ncol,
_UnaryOperation  __unop 
)

Create a boolean matrix A (not necessarily a permutation matrix) Input: ri: a dense vector (actual values in FullyDistVec should be IT) ncol: number of columns in the output matrix A Output: a boolean matrix A with m=size(ri) and n=ncol (input) and A[k,ri[k]]=1

Definition at line 255 of file BPMaximumMatching.cpp.

void pruneM ( FullyDistSpVec< int64_t, VertexType > &  fringeRow,
FullyDistSpVec< int64_t, int64_t > &  temp1 
)

Definition at line 887 of file BPMaximumMatching.cpp.

void removeIsolated ( PSpMat_Bool A)

Definition at line 79 of file BPMaximumMatching.cpp.

void showCurOptions ( )

Definition at line 412 of file BPMaximumMatching.cpp.

void ShowUsage ( )

Definition at line 349 of file BPMaximumMatching.cpp.

template<typename PARMAT >
void Symmetricize ( PARMAT &  A)

Definition at line 31 of file BPMaximumMatching.cpp.

Variable Documentation

bool fewexp

Definition at line 27 of file BPMaximumMatching.cpp.

int init

Definition at line 25 of file BPMaximumMatching.cpp.

bool moreSplit

Definition at line 24 of file BPMaximumMatching.cpp.

bool mvInvertMate

Definition at line 24 of file BPMaximumMatching.cpp.

bool prune

Definition at line 24 of file BPMaximumMatching.cpp.

bool randMaximal

Definition at line 26 of file BPMaximumMatching.cpp.

bool randMM

Definition at line 24 of file BPMaximumMatching.cpp.