Poros
poros.h
Go to the documentation of this file.
1 
31 #ifndef POROS_H
32 #define POROS_H
33 
34 
35 #include <stdint.h>
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 
42 typedef uint32_t poros_vtx_type;
43 typedef uint32_t poros_adj_type;
44 typedef uint32_t poros_wgt_type;
45 typedef uint32_t poros_pid_type;
46 
47 
51 typedef enum {
55 
56 
60 typedef enum {
64 
65 
69 typedef enum {
72 
73 
74 typedef struct {
80 
87 
91  unsigned int randomSeed;
92 
100 
106 
113 
114 
121 
122 
142  poros_vtx_type numVertices,
143  poros_adj_type const * edgePrefix,
144  poros_vtx_type const * edgeList,
145  poros_wgt_type const * vertexWeights,
146  poros_wgt_type const * edgeWeights,
147  poros_pid_type numPartitions,
148  poros_options_struct const * options,
149  poros_wgt_type * totalCutEdgeWeight,
150  poros_pid_type * partitionAssignment);
151 
152 
153 
154 #ifdef __cplusplus
155 }
156 #endif
157 
158 #endif
poros_options_struct POROS_defaultOptions(void)
Generate the default options to execute Poros with.
aggregator_type
Aggregation types.
Definition: poros.h:51
uint32_t poros_adj_type
Definition: poros.h:43
double * targetPartitionFractions
The fraction of weight for each partition. If this is null, then each partition will be of equal weig...
Definition: poros.h:86
Definition: poros.h:61
bisector_type
Bisector types.
Definition: poros.h:60
Definition: poros.h:62
int outputTimes
Write timing information to stdout. Used for development and benchmarking purposes.
Definition: poros.h:111
uint32_t poros_vtx_type
Definition: poros.h:42
uint32_t poros_pid_type
Definition: poros.h:45
uint32_t poros_wgt_type
Definition: poros.h:44
int POROS_PartGraphRecursive(poros_vtx_type numVertices, poros_adj_type const *edgePrefix, poros_vtx_type const *edgeList, poros_wgt_type const *vertexWeights, poros_wgt_type const *edgeWeights, poros_pid_type numPartitions, poros_options_struct const *options, poros_wgt_type *totalCutEdgeWeight, poros_pid_type *partitionAssignment)
Partition a graph using recursive bisection.
int aggregationScheme
The type of aggregation to perform. Should be a member of the aggreagtor_type enum.
Definition: poros.h:105
Definition: poros.h:74
int refinementIterations
The maximum number of refinement iterations to perform. A value of -1 will result in there being no m...
Definition: poros.h:99
double imbalanceTolerance
The fraction of imbalance to accept (i.e., 0.03 allows for one partition to be 3% higher than its tar...
Definition: poros.h:79
unsigned int randomSeed
The random seed to use for generating random numbers.
Definition: poros.h:91
Definition: poros.h:70
Definition: poros.h:52
two_way_refiner_type
Two way refinement type.
Definition: poros.h:69
Definition: poros.h:53