| 1 | /*!\file: chaco.h
|
|---|
| 2 | * \brief prototypes for chaco library
|
|---|
| 3 | */
|
|---|
| 4 |
|
|---|
| 5 | #ifndef _CHACO_INCLUDES_H_
|
|---|
| 6 | #define _CHACO_INCLUDES_H_
|
|---|
| 7 |
|
|---|
| 8 | #include "./defs.h"
|
|---|
| 9 | #include "./params.h"
|
|---|
| 10 |
|
|---|
| 11 | extern "C" int interface( int nvtxs, /* number of vertices in full graph */
|
|---|
| 12 | int *start, /* start of edge list for each vertex */
|
|---|
| 13 | int *adjacency, /* edge list data */
|
|---|
| 14 | int *vwgts, /* weights for all vertices */
|
|---|
| 15 | float *ewgts, /* weights for all edges */
|
|---|
| 16 | float *x,
|
|---|
| 17 | float *y,
|
|---|
| 18 | float *z, /* coordinates for inertial method */
|
|---|
| 19 | char *outassignname, /* name of assignment output file */
|
|---|
| 20 | char *outfilename, /* output file name */
|
|---|
| 21 | short *assignment, /* set number of each vtx (length n) */
|
|---|
| 22 | int architecture, /* 0 => hypercube, d => d-dimensional mesh */
|
|---|
| 23 | int ndims_tot, /* total number of cube dimensions to divide */
|
|---|
| 24 | int mesh_dims[3], /* dimensions of mesh of processors */
|
|---|
| 25 | double *goal, /* desired set sizes for each set */
|
|---|
| 26 | int global_method, /* global partitioning algorithm */
|
|---|
| 27 | int local_method, /* local partitioning algorithm */
|
|---|
| 28 | int rqi_flag, /* should I use RQI/Symmlq eigensolver? */
|
|---|
| 29 | int vmax, /* how many vertices to coarsen down to? */
|
|---|
| 30 | int ndims, /* number of eigenvectors (2^d sets) */
|
|---|
| 31 | double eigtol, /* tolerance on eigenvectors */
|
|---|
| 32 | long seed); /* for random graph mutations */
|
|---|
| 33 |
|
|---|
| 34 | extern "C" void read_params(FILE* pfile); /* file with new user parameters */
|
|---|
| 35 | extern "C" void smalloc_stats(void);
|
|---|
| 36 | extern "C" double* smalloc(unsigned int n); /* number of bytes to be allocated */
|
|---|
| 37 |
|
|---|
| 38 | #endif //ifndef _CHACO_INCLUDES_H_
|
|---|
| 39 |
|
|---|