MetisGraph Class Reference

#include <MetisGraph.h>

List of all members.

Public Member Functions

 MetisGraph ()
 ~MetisGraph ()
void initMatches ()
void releaseMatches ()
bool isMatched (int id)
GNode getMatch (int id)
void initSubGraphMapTo ()
GNode getSubGraphMapTo (int id)
void releaseSubGraphMapTo ()
GNode getCoarseGraphMap (int id)
void releaseCoarseGraphMap ()
void initCoarseGraphMap ()
void setMatch (int id, GNode node)
void setSubGraphMapTo (int id, GNode node)
void setCoarseGraphMap (int id, GNode node)
void incPartWeight (int index, int weight)
 add weight to the weight of a partition
void initPartWeight (size_t nparts)
 initialize the partition weights variable
void setPartWeight (int index, int weight)
 Set the weight of a partition.
int getPartWeight (int part)
 get the weight of a partition
void incNumEdges ()
 increase the num of edges by 1 in the graph
int getNumEdges ()
 return the num of edges in the graph
void setNumEdges (int num)
void setNumNodes (int num)
int getNumNodes ()
void computeTwoWayPartitionParams ()
 compute the parameters for two-way refining
int getMaxAdjSum ()
 get the maximal adjsum(the sum of the outgoing edge weights of a node) among all the nodes
void computeKWayPartitionParams (int nparts)
 compute the parameters for kway refining
void updateNodeEdAndId (GNode node)
 update the external and internal degree for every node in the graph
GGraphgetGraph ()
 return the intgraph in the wrapper
void setGraph (GGraph *graph)
 set the graph for the wrapper
MetisGraphgetFinerGraph ()
 return the finer metisGraph
void setFinerGraph (MetisGraph *finer)
 set the finer metisGraph
int getMinCut ()
 return the graphcut
void setMinCut (int cut)
 set the graphcut
void incMinCut (int cut)
 increase the graphcut
int getNumOfBoundaryNodes ()
 return the number of boundary nodes in the graph
void setBoundaryNode (GNode node)
 set a node as a boundary node
void markBoundaryNode (GNode node)
void unMarkBoundaryNode (GNode node)
void unsetBoundaryNode (GNode node)
 unmark a boundary nodes
void unsetAllBoundaryNodes ()
 unset all the boundary nodes
GNodeSetgetBoundaryNodes ()
 return the set of boundary nodes
void initBoundarySet ()
void computeAdjWgtSums ()
 Compute the sum of the weights of all the outgoing edges for each node in the graph.
int computeCut ()
 compute graph cut
int computeEdges ()
 compute the number of edges in the graph
int computeAdjWgtSum (GNode node)
 Compute the sum of the weights of all the outgoing edges for a node.
bool verify ()
 verify if the partitioning is correctly performed by checking the internal maintained graph cut is same as the real graph cut
bool isBalanced (float *tpwgts, float ubfactor)
 check if the partitioning is balanced
void computeKWayBalanceBoundary ()
void computeKWayBoundary ()
float computePartitionBalance (int nparts)

Private Attributes

vector< int > partWeights
int mincut
int numEdges
int numNodes
MetisGraphfinerGraph
GGraphgraph
GNodeSetboundaryNodes
GNodematches
bool * matchFlag
GNodesubGraphMaps
GNodecoarseGraphMapTo

Constructor & Destructor Documentation

MetisGraph::MetisGraph (  )  [inline]
MetisGraph::~MetisGraph (  )  [inline]

Member Function Documentation

int MetisGraph::computeAdjWgtSum ( GNode  node  )  [inline]

Compute the sum of the weights of all the outgoing edges for a node.

void MetisGraph::computeAdjWgtSums (  )  [inline]

Compute the sum of the weights of all the outgoing edges for each node in the graph.

int MetisGraph::computeCut (  )  [inline]

compute graph cut

int MetisGraph::computeEdges (  )  [inline]

compute the number of edges in the graph

void MetisGraph::computeKWayBalanceBoundary (  )  [inline]
void MetisGraph::computeKWayBoundary (  )  [inline]
void MetisGraph::computeKWayPartitionParams ( int  nparts  )  [inline]

compute the parameters for kway refining

float MetisGraph::computePartitionBalance ( int  nparts  )  [inline]
void MetisGraph::computeTwoWayPartitionParams (  )  [inline]

compute the parameters for two-way refining

GNodeSet* MetisGraph::getBoundaryNodes (  )  [inline]

return the set of boundary nodes

GNode MetisGraph::getCoarseGraphMap ( int  id  )  [inline]
MetisGraph* MetisGraph::getFinerGraph (  )  [inline]

return the finer metisGraph

GGraph* MetisGraph::getGraph (  )  [inline]

return the intgraph in the wrapper

GNode MetisGraph::getMatch ( int  id  )  [inline]
int MetisGraph::getMaxAdjSum (  )  [inline]

get the maximal adjsum(the sum of the outgoing edge weights of a node) among all the nodes

int MetisGraph::getMinCut (  )  [inline]

return the graphcut

int MetisGraph::getNumEdges (  )  [inline]

return the num of edges in the graph

int MetisGraph::getNumNodes (  )  [inline]
int MetisGraph::getNumOfBoundaryNodes (  )  [inline]

return the number of boundary nodes in the graph

int MetisGraph::getPartWeight ( int  part  )  [inline]

get the weight of a partition

Parameters:
part the index of the partition
Returns:
the weight of a partition
GNode MetisGraph::getSubGraphMapTo ( int  id  )  [inline]
void MetisGraph::incMinCut ( int  cut  )  [inline]

increase the graphcut

void MetisGraph::incNumEdges (  )  [inline]

increase the num of edges by 1 in the graph

void MetisGraph::incPartWeight ( int  index,
int  weight 
) [inline]

add weight to the weight of a partition

Parameters:
index the index of the partition
weight the weight to increase Galois C++ currently does not support abstract lock on integer, so __sync_fetch_and_add is used to add atomically. In the future, this will be changed to use abstract lock
void MetisGraph::initBoundarySet (  )  [inline]
void MetisGraph::initCoarseGraphMap (  )  [inline]
void MetisGraph::initMatches (  )  [inline]
void MetisGraph::initPartWeight ( size_t  nparts  )  [inline]

initialize the partition weights variable

void MetisGraph::initSubGraphMapTo (  )  [inline]
bool MetisGraph::isBalanced ( float *  tpwgts,
float  ubfactor 
) [inline]

check if the partitioning is balanced

bool MetisGraph::isMatched ( int  id  )  [inline]
void MetisGraph::markBoundaryNode ( GNode  node  )  [inline]
void MetisGraph::releaseCoarseGraphMap (  )  [inline]
void MetisGraph::releaseMatches (  )  [inline]
void MetisGraph::releaseSubGraphMapTo (  )  [inline]
void MetisGraph::setBoundaryNode ( GNode  node  )  [inline]

set a node as a boundary node

void MetisGraph::setCoarseGraphMap ( int  id,
GNode  node 
) [inline]
void MetisGraph::setFinerGraph ( MetisGraph finer  )  [inline]

set the finer metisGraph

void MetisGraph::setGraph ( GGraph graph  )  [inline]

set the graph for the wrapper

void MetisGraph::setMatch ( int  id,
GNode  node 
) [inline]
void MetisGraph::setMinCut ( int  cut  )  [inline]

set the graphcut

void MetisGraph::setNumEdges ( int  num  )  [inline]
void MetisGraph::setNumNodes ( int  num  )  [inline]
void MetisGraph::setPartWeight ( int  index,
int  weight 
) [inline]

Set the weight of a partition.

Parameters:
index the index of the partition
weight the weight to set
void MetisGraph::setSubGraphMapTo ( int  id,
GNode  node 
) [inline]
void MetisGraph::unMarkBoundaryNode ( GNode  node  )  [inline]
void MetisGraph::unsetAllBoundaryNodes (  )  [inline]

unset all the boundary nodes

void MetisGraph::unsetBoundaryNode ( GNode  node  )  [inline]

unmark a boundary nodes

void MetisGraph::updateNodeEdAndId ( GNode  node  )  [inline]

update the external and internal degree for every node in the graph

bool MetisGraph::verify (  )  [inline]

verify if the partitioning is correctly performed by checking the internal maintained graph cut is same as the real graph cut


Member Data Documentation

bool* MetisGraph::matchFlag [private]
int MetisGraph::mincut [private]
int MetisGraph::numEdges [private]
int MetisGraph::numNodes [private]
vector<int> MetisGraph::partWeights [private]

The documentation for this class was generated from the following file:
Generated on Tue Aug 2 11:51:27 2011 for Galois by  doxygen 1.6.3