33 #define IDXTYPEWIDTH 32 43 #define REALTYPEWIDTH 32 69 typedef __int32 int32_t;
70 typedef __int64 int64_t;
75 #define INT32_MIN ((int32_t)_I32_MIN) 76 #define INT32_MAX _I32_MAX 77 #define INT64_MIN ((int64_t)_I64_MIN) 78 #define INT64_MAX _I64_MAX 88 #if IDXTYPEWIDTH == 32 89 typedef int32_t idx_t;
91 #define IDX_MAX INT32_MAX 92 #define IDX_MIN INT32_MIN 97 #define strtoidx strtol 99 #elif IDXTYPEWIDTH == 64 100 typedef int64_t idx_t;
102 #define IDX_MAX INT64_MAX 103 #define IDX_MIN INT64_MIN 109 #define strtoidx _strtoi64 111 #define strtoidx strtoll 115 #error "Incorrect user-supplied value fo IDXTYPEWIDTH" 119 #if REALTYPEWIDTH == 32 120 typedef float real_t;
124 #define REAL_MAX FLT_MAX 125 #define REAL_MIN FLT_MIN 126 #define REAL_EPSILON FLT_EPSILON 129 #define REALEQ(x,y) ((rabs((x)-(y)) <= FLT_EPSILON)) 132 #define strtoreal (float)strtod 134 #define strtoreal strtof 136 #elif REALTYPEWIDTH == 64 137 typedef double real_t;
141 #define REAL_MAX DBL_MAX 142 #define REAL_MIN DBL_MIN 143 #define REAL_EPSILON DBL_EPSILON 146 #define REALEQ(x,y) ((rabs((x)-(y)) <= DBL_EPSILON)) 148 #define strtoreal strtod 150 #error "Incorrect user-supplied value for REALTYPEWIDTH" 158 #define METIS_VER_MAJOR 5 159 #define METIS_VER_MINOR 1 160 #define METIS_VER_SUBMINOR 0 163 #define METIS_NOPTIONS 40 172 #define METIS_API(type) __declspec(dllexport) type __cdecl 173 #elif defined(__cdecl) 174 #define METIS_API(type) type __cdecl 176 #define METIS_API(type) type 186 idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
187 idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
188 idx_t *edgecut, idx_t *part);
191 idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
192 idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
193 idx_t *edgecut, idx_t *part);
195 METIS_API(
int) METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
196 idx_t *ncommon, idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy);
198 METIS_API(
int) METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
199 idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy);
201 METIS_API(
int) METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
202 idx_t *vwgt, idx_t *vsize, idx_t *nparts, real_t *tpwgts,
203 idx_t *options, idx_t *objval, idx_t *epart, idx_t *npart);
205 METIS_API(
int) METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
206 idx_t *vwgt, idx_t *vsize, idx_t *ncommon, idx_t *nparts,
207 real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
210 METIS_API(
int) METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
211 idx_t *options, idx_t *perm, idx_t *iperm);
220 METIS_API(
int) METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
221 idx_t npes, idx_t *options, idx_t *perm, idx_t *iperm,
224 METIS_API(
int) METIS_ComputeVertexSeparator(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy,
225 idx_t *vwgt, idx_t *options, idx_t *sepsize, idx_t *part);
227 METIS_API(
int) METIS_NodeRefine(idx_t nvtxs, idx_t *xadj, idx_t *vwgt, idx_t *adjncy,
228 idx_t *where, idx_t *hmarker, real_t ubfactor);
260 METIS_OPTION_OBJTYPE,
269 METIS_OPTION_MINCONN,
271 METIS_OPTION_COMPRESS,
272 METIS_OPTION_CCORDER,
273 METIS_OPTION_PFACTOR,
275 METIS_OPTION_UFACTOR,
276 METIS_OPTION_NUMBERING,
281 METIS_OPTION_NCOMMON,
282 METIS_OPTION_NOOUTPUT,
283 METIS_OPTION_BALANCE,
321 METIS_RTYPE_SEP2SIDED,
322 METIS_RTYPE_SEP1SIDED
moptions_et
Definition: metis.h:258
mdbglvl_et
Definition: metis.h:327
int METIS_Free(void *ptr)
Definition: auxapi.c:23
int METIS_SetDefaultOptions(idx_t *options)
Definition: auxapi.c:36
mrtype_et
Definition: metis.h:318
mctype_et
Definition: metis.h:302
mgtype_et
Definition: metis.h:296
miptype_et
Definition: metis.h:308
rstatus_et
Definition: metis.h:241
int METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *objval, idx_t *part)
Recursive partitioning routine.
Definition: pmetis.c:91
int METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *objval, idx_t *part)
Definition: kmetis.c:18
moptype_et
Definition: metis.h:250
mptype_et
Definition: metis.h:290