oomph_metis_from_parmetis_3.1.1/proto.h
Go to the documentation of this file.
1 /*
2  * Copyright 1997, Regents of the University of Minnesota
3  *
4  * proto.h
5  *
6  * This file contains header files
7  *
8  * Started 10/19/95
9  * George
10  *
11  * $Id: proto.h,v 1.3 2003/07/24 18:39:11 karypis Exp $
12  *
13  */
14 
15 /* balance.c */
16 void Balance2Way(CtrlType *, GraphType *, int *, float);
17 void Bnd2WayBalance(CtrlType *, GraphType *, int *);
19 
20 /* bucketsort.c */
21 void BucketSortKeysInc(int, int, idxtype *, idxtype *, idxtype *);
22 
23 /* ccgraph.c */
29 
30 /* checkgraph.c */
32 
33 /* coarsen.c */
35 
36 /* compress.c */
38 void PruneGraph(CtrlType *, GraphType *, int, idxtype *, idxtype *, idxtype *, float);
39 
40 /* debug.c */
44 int CheckNodeBnd(GraphType *, int);
48 
49 /* estmem.c */
50 void METIS_EstimateMemory(int *, idxtype *, idxtype *, int *, int *, int *);
51 void EstimateCFraction(int, idxtype *, idxtype *, float *, float *);
53 
54 /* fm.c */
55 void FM_2WayEdgeRefine(CtrlType *, GraphType *, int *, int);
56 
57 /* fortran.c */
63 void ChangeMesh2FNumbering(int, idxtype *, int, idxtype *, idxtype *);
64 void ChangeMesh2FNumbering2(int, idxtype *, int, int, idxtype *, idxtype *);
65 
66 /* frename.c */
67 void METIS_PARTGRAPHRECURSIVE(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
68 void metis_partgraphrecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
69 void metis_partgraphrecursive_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
70 void metis_partgraphrecursive__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
71 void METIS_WPARTGRAPHRECURSIVE(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
72 void metis_wpartgraphrecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
73 void metis_wpartgraphrecursive_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
74 void metis_wpartgraphrecursive__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
75 void METIS_PARTGRAPHKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
76 void metis_partgraphkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
77 void metis_partgraphkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
78 void metis_partgraphkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
79 void METIS_WPARTGRAPHKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
80 void metis_wpartgraphkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
81 void metis_wpartgraphkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
82 void metis_wpartgraphkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
83 void METIS_EDGEND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
84 void metis_edgend(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
85 void metis_edgend_(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
86 void metis_edgend__(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
87 void METIS_NODEND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
88 void metis_nodend(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
89 void metis_nodend_(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
90 void metis_nodend__(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
91 void METIS_NODEWND(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
92 void metis_nodewnd(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
93 void metis_nodewnd_(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
94 void metis_nodewnd__(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
95 void METIS_PARTMESHNODAL(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
96 void metis_partmeshnodal(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
97 void metis_partmeshnodal_(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
98 void metis_partmeshnodal__(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
99 void METIS_PARTMESHDUAL(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
100 void metis_partmeshdual(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
101 void metis_partmeshdual_(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
102 void metis_partmeshdual__(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
103 void METIS_MESHTONODAL(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
104 void metis_meshtonodal(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
105 void metis_meshtonodal_(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
106 void metis_meshtonodal__(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
107 void METIS_MESHTODUAL(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
108 void metis_meshtodual(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
109 void metis_meshtodual_(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
110 void metis_meshtodual__(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
111 void METIS_ESTIMATEMEMORY(int *, idxtype *, idxtype *, int *, int *, int *);
112 void metis_estimatememory(int *, idxtype *, idxtype *, int *, int *, int *);
113 void metis_estimatememory_(int *, idxtype *, idxtype *, int *, int *, int *);
114 void metis_estimatememory__(int *, idxtype *, idxtype *, int *, int *, int *);
115 void METIS_MCPARTGRAPHRECURSIVE(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
116 void metis_mcpartgraphrecursive(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
117 void metis_mcpartgraphrecursive_(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
118 void metis_mcpartgraphrecursive__(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
119 void METIS_MCPARTGRAPHKWAY(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
120 void metis_mcpartgraphkway(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
121 void metis_mcpartgraphkway_(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
122 void metis_mcpartgraphkway__(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
123 void METIS_PARTGRAPHVKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
124 void metis_partgraphvkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
125 void metis_partgraphvkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
126 void metis_partgraphvkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
127 void METIS_WPARTGRAPHVKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
128 void metis_wpartgraphvkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
129 void metis_wpartgraphvkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
130 void metis_wpartgraphvkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
131 
132 /* graph.c */
133 void SetUpGraph(GraphType *, int, int, int, idxtype *, idxtype *, idxtype *, idxtype *, int);
135 void SetUpGraph2(GraphType *, int, int, idxtype *, idxtype *, float *, idxtype *);
136 void VolSetUpGraph(GraphType *, int, int, int, idxtype *, idxtype *, idxtype *, idxtype *, int);
142 
143 /* initpart.c */
144 void Init2WayPartition(CtrlType *, GraphType *, int *, float);
145 void InitSeparator(CtrlType *, GraphType *, float);
146 void GrowBisection(CtrlType *, GraphType *, int *, float);
148 void RandomBisection(CtrlType *, GraphType *, int *, float);
149 
150 /* kmetis.c */
151 void METIS_PartGraphKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
152 void METIS_WPartGraphKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
153 int MlevelKWayPartitioning(CtrlType *, GraphType *, int, idxtype *, float *, float);
154 
155 /* kvmetis.c */
156 void METIS_PartGraphVKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
157 void METIS_WPartGraphVKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
158 int MlevelVolKWayPartitioning(CtrlType *, GraphType *, int, idxtype *, float *, float);
159 
160 /* kwayfm.c */
161 void Random_KWayEdgeRefine(CtrlType *, GraphType *, int, float *, float, int, int);
162 void Greedy_KWayEdgeRefine(CtrlType *, GraphType *, int, float *, float, int);
163 void Greedy_KWayEdgeBalance(CtrlType *, GraphType *, int, float *, float, int);
164 
165 /* kwayrefine.c */
166 void RefineKWay(CtrlType *, GraphType *, GraphType *, int, float *, float);
170 int IsBalanced(idxtype *, int, float *, float);
173 
174 /* kwayvolfm.c */
175 void Random_KWayVolRefine(CtrlType *, GraphType *, int, float *, float, int, int);
176 void Random_KWayVolRefineMConn(CtrlType *, GraphType *, int, float *, float, int, int);
177 void Greedy_KWayVolBalance(CtrlType *, GraphType *, int, float *, float, int);
178 void Greedy_KWayVolBalanceMConn(CtrlType *, GraphType *, int, float *, float, int);
179 void KWayVolUpdate(CtrlType *, GraphType *, int, int, int, idxtype *, idxtype *, idxtype *);
185 void EliminateVolComponents(CtrlType *, GraphType *, int, float *, float);
186 
187 /* kwayvolrefine.c */
188 void RefineVolKWay(CtrlType *, GraphType *, GraphType *, int, float *, float);
195 
196 /* match.c */
201 
202 /* mbalance.c */
203 void MocBalance2Way(CtrlType *, GraphType *, float *, float);
204 void MocGeneral2WayBalance(CtrlType *, GraphType *, float *, float);
205 
206 /* mbalance2.c */
207 void MocBalance2Way2(CtrlType *, GraphType *, float *, float *);
208 void MocGeneral2WayBalance2(CtrlType *, GraphType *, float *, float *);
209 void SelectQueue3(int, float *, float *, int *, int *, PQueueType [MAXNCON][2], float *);
210 
211 /* mcoarsen.c */
213 
214 /* memory.c */
219 void idxwspacefree(CtrlType *, int);
220 float *fwspacemalloc(CtrlType *, int);
221 void fwspacefree(CtrlType *, int);
225 
226 /* mesh.c */
227 void METIS_MeshToDual(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
228 void METIS_MeshToNodal(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *);
229 void GENDUALMETIS(int, int, int, idxtype *, idxtype *, idxtype *adjncy);
230 void TRINODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy);
231 void TETNODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy);
232 void HEXNODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy);
233 void QUADNODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy);
234 
235 /* meshpart.c */
236 void METIS_PartMeshNodal(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
237 void METIS_PartMeshDual(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *);
238 
239 /* mfm.c */
240 void MocFM_2WayEdgeRefine(CtrlType *, GraphType *, float *, int);
241 void SelectQueue(int, float *, float *, int *, int *, PQueueType [MAXNCON][2]);
242 int BetterBalance(int, float *, float *, float *);
243 float Compute2WayHLoadImbalance(int, float *, float *);
244 void Compute2WayHLoadImbalanceVec(int, float *, float *, float *);
245 
246 /* mfm2.c */
247 void MocFM_2WayEdgeRefine2(CtrlType *, GraphType *, float *, float *, int);
248 void SelectQueue2(int, float *, float *, int *, int *, PQueueType [MAXNCON][2], float *);
249 int IsBetter2wayBalance(int, float *, float *, float *);
250 
251 /* mincover.o */
252 void MinCover(idxtype *, idxtype *, int, int, idxtype *, int *);
253 int MinCover_Augment(idxtype *, idxtype *, int, idxtype *, idxtype *, idxtype *, int);
254 void MinCover_Decompose(idxtype *, idxtype *, int, int, idxtype *, idxtype *, int *);
255 void MinCover_ColDFS(idxtype *, idxtype *, int, idxtype *, idxtype *, int);
256 void MinCover_RowDFS(idxtype *, idxtype *, int, idxtype *, idxtype *, int);
257 
258 /* minitpart.c */
259 void MocInit2WayPartition(CtrlType *, GraphType *, float *, float);
260 void MocGrowBisection(CtrlType *, GraphType *, float *, float);
261 void MocRandomBisection(CtrlType *, GraphType *, float *, float);
263 int SelectQueueoneWay(int, float *, float *, int, PQueueType [MAXNCON][2]);
264 
265 /* minitpart2.c */
266 void MocInit2WayPartition2(CtrlType *, GraphType *, float *, float *);
267 void MocGrowBisection2(CtrlType *, GraphType *, float *, float *);
268 void MocGrowBisectionNew2(CtrlType *, GraphType *, float *, float *);
269 void MocInit2WayBalance2(CtrlType *, GraphType *, float *, float *);
270 int SelectQueueOneWay2(int, float *, PQueueType [MAXNCON][2], float *);
271 
272 /* mkmetis.c */
273 void METIS_mCPartGraphKway(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
275 
276 /* mkwayfmh.c */
279 int AreAllHVwgtsBelow(int, float, float *, float, float *, float *);
280 int AreAllHVwgtsAbove(int, float, float *, float, float *, float *);
281 void ComputeHKWayLoadImbalance(int, int, float *, float *);
282 int MocIsHBalanced(int, int, float *, float *);
283 int IsHBalanceBetterFT(int, int, float *, float *, float *, float *);
284 int IsHBalanceBetterTT(int, int, float *, float *, float *, float *);
285 
286 /* mkwayrefine.c */
292 
293 /* mmatch.c */
299 float BetterVBalance(int, int, float *, float *, float *);
300 int AreAllVwgtsBelowFast(int, float *, float *, float);
301 
302 /* mmd.c */
303 void genmmd(int, idxtype *, idxtype *, idxtype *, idxtype *, int , idxtype *, idxtype *, idxtype *, idxtype *, int, int *);
304 void mmdelm(int, idxtype *xadj, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, int, int);
305 int mmdint(int, idxtype *xadj, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *);
306 void mmdnum(int, idxtype *, idxtype *, idxtype *);
307 void mmdupd(int, int, idxtype *, idxtype *, int, int *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, int, int *tag);
308 
309 /* mpmetis.c */
310 void METIS_mCPartGraphRecursive(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
311 void METIS_mCHPartGraphRecursive(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
312 void METIS_mCPartGraphRecursiveInternal(int *, int *, idxtype *, idxtype *, float *, idxtype *, int *, int *, int *, idxtype *);
313 void METIS_mCHPartGraphRecursiveInternal(int *, int *, idxtype *, idxtype *, float *, idxtype *, int *, float *, int *, int *, idxtype *);
314 int MCMlevelRecursiveBisection(CtrlType *, GraphType *, int, idxtype *, float, int);
315 int MCHMlevelRecursiveBisection(CtrlType *, GraphType *, int, idxtype *, float *, int);
316 void MCMlevelEdgeBisection(CtrlType *, GraphType *, float *, float);
317 void MCHMlevelEdgeBisection(CtrlType *, GraphType *, float *, float *);
318 
319 /* mrefine.c */
320 void MocRefine2Way(CtrlType *, GraphType *, GraphType *, float *, float);
324 
325 /* mrefine2.c */
326 void MocRefine2Way2(CtrlType *, GraphType *, GraphType *, float *, float *);
327 
328 /* mutil.c */
329 int AreAllVwgtsBelow(int, float, float *, float, float *, float);
330 int AreAnyVwgtsBelow(int, float, float *, float, float *, float);
331 int AreAllVwgtsAbove(int, float, float *, float, float *, float);
332 float ComputeLoadImbalance(int, int, float *, float *);
333 int AreAllBelow(int, float *, float *);
334 
335 /* myqsort.c */
336 void iidxsort(int, idxtype *);
337 void iintsort(int, int *);
338 void ikeysort(int, KeyValueType *);
340 
341 /* ometis.c */
342 void METIS_EdgeND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
343 void METIS_NodeND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
344 void METIS_NodeWND(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *);
348 void MlevelNodeBisection(CtrlType *, GraphType *, int *, float);
350 void MMDOrder(CtrlType *, GraphType *, idxtype *, int);
352 
353 /* parmetis.c */
354 void METIS_PartGraphKway2(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
355 void METIS_WPartGraphKway2(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
356 void METIS_NodeNDP(int, idxtype *, idxtype *, int, int *, idxtype *, idxtype *, idxtype *);
357 void MlevelNestedDissectionP(CtrlType *, GraphType *, idxtype *, int, int, int, idxtype *);
358 void METIS_NodeComputeSeparator(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *);
359 void METIS_EdgeComputeSeparator(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *);
360 void METIS_mCPartGraphRecursive2(int *nvtxs, int *ncon, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, idxtype *adjwgt, int *wgtflag, int *numflag, int *nparts, float *tpwgts, int *options, int *edgecut, idxtype *part);
361 int MCMlevelRecursiveBisection2(CtrlType *ctrl, GraphType *graph, int nparts, float *tpwgts, idxtype *part, float ubfactor, int fpart);
362 
363 
364 
365 /* pmetis.c */
366 void METIS_PartGraphRecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *);
367 void METIS_WPartGraphRecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *);
368 int MlevelRecursiveBisection(CtrlType *, GraphType *, int, idxtype *, float *, float, int);
369 void MlevelEdgeBisection(CtrlType *, GraphType *, int *, float);
371 void SetUpSplitGraph(GraphType *, GraphType *, int, int);
372 
373 /* pqueue.c */
374 void PQueueInit(CtrlType *ctrl, PQueueType *, int, int);
378 int PQueueInsert(PQueueType *, int, int);
379 int PQueueDelete(PQueueType *, int, int);
380 int PQueueUpdate(PQueueType *, int, int, int);
381 void PQueueUpdateUp(PQueueType *, int, int, int);
386 
387 /* refine.c */
388 void Refine2Way(CtrlType *, GraphType *, GraphType *, int *, float ubfactor);
392 
393 /* separator.c */
397 
398 /* sfm.c */
399 void FM_2WayNodeRefine(CtrlType *, GraphType *, float, int);
404 
405 /* srefine.c */
410 
411 /* stat.c */
414 void ComputePartitionBalance(GraphType *, int, idxtype *, float *);
415 float ComputeElementBalance(int, int, idxtype *);
416 void Moc_ComputePartitionBalance(GraphType *graph, int nparts, idxtype *where, float *ubvec);
417 
418 /* subdomains.c */
419 void Random_KWayEdgeRefineMConn(CtrlType *, GraphType *, int, float *, float, int, int);
420 void Greedy_KWayEdgeBalanceMConn(CtrlType *, GraphType *, int, float *, float, int);
423 void EliminateSubDomainEdges(CtrlType *, GraphType *, int, float *);
424 void MoveGroupMConn(CtrlType *, GraphType *, idxtype *, idxtype *, int, int, int, idxtype *);
425 void EliminateComponents(CtrlType *, GraphType *, int, float *, float);
426 void MoveGroup(CtrlType *, GraphType *, int, int, int, idxtype *, idxtype *);
427 
428 /* timing.c */
431 double seconds(void);
432 
433 /* util.c */
434 void errexit(char *,...);
435 #ifndef DMALLOC
436 int *imalloc(int, char *);
437 idxtype *idxmalloc(int, char *);
438 float *fmalloc(int, char *);
439 int *ismalloc(int, int, char *);
440 idxtype *idxsmalloc(int, idxtype, char *);
441 void *GKmalloc(int, char *);
442 #endif
443 /*void GKfree(void **,...); */
444 int *iset(int n, int val, int *x);
446 float *sset(int n, float val, float *x);
447 int iamax(int, int *);
448 int idxamax(int, idxtype *);
449 int idxamax_strd(int, idxtype *, int);
450 int samax(int, float *);
451 int samax2(int, float *);
452 int idxamin(int, idxtype *);
453 int samin(int, float *);
454 int idxsum(int, idxtype *);
455 int idxsum_strd(int, idxtype *, int);
456 void idxadd(int, idxtype *, idxtype *);
457 int charsum(int, char *);
458 int isum(int, int *);
459 float ssum(int, float *);
460 float ssum_strd(int n, float *x, int);
461 void sscale(int n, float, float *x);
462 float snorm2(int, float *);
463 float sdot(int n, float *, float *);
464 void saxpy(int, float, float *, int, float *, int);
465 void RandomPermute(int, idxtype *, int);
466 int ispow2(int);
467 void InitRandom(int);
468 int log2Int(int);
469 
470 
471 
472 
473 
474 
475 
476 
477 
478 
479 /***************************************************************
480 * Programs Directory
481 ****************************************************************/
482 
483 /* io.c */
484 void ReadGraph(GraphType *, char *, int *);
485 void WritePartition(char *, idxtype *, int, int);
486 void WriteMeshPartition(char *, int, int, idxtype *, int, idxtype *);
487 void WritePermutation(char *, idxtype *, int);
488 int CheckGraph(GraphType *);
489 idxtype *ReadMesh(char *, int *, int *, int *);
490 void WriteGraph(char *, int, idxtype *, idxtype *);
491 
492 /* smbfactor.c */
495 int smbfct(int, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, int *, idxtype *, idxtype *, int *);
496 
497 
498 /***************************************************************
499 * Test Directory
500 ****************************************************************/
502 int VerifyPart(int, idxtype *, idxtype *, idxtype *, idxtype *, int, int, idxtype *);
503 int VerifyWPart(int, idxtype *, idxtype *, idxtype *, idxtype *, int, float *, int, idxtype *);
505 int VerifyPartV(int, idxtype *, idxtype *, idxtype *, idxtype *, int, int, idxtype *);
506 int VerifyWPartV(int, idxtype *, idxtype *, idxtype *, idxtype *, int, float *, int, idxtype *);
508 int VerifyPartmC(int, int, idxtype *, idxtype *, idxtype *, idxtype *, int, float *, int, idxtype *);
509 void Test_ND(int, idxtype *, idxtype *);
510 int VerifyND(int, idxtype *, idxtype *);
511 
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
val
Definition: calibrate.py:119
list x
Definition: plotDoE.py:28
#define MAXNCON
Definition: oomph_metis_from_parmetis_3.1.1/defs.h:20
void MocAllocateKWayPartitionMemory(CtrlType *, GraphType *, int)
void ComputeVolKWayBalanceBoundary(CtrlType *, GraphType *, int)
int ComputeVolume(GraphType *, idxtype *)
void MMDOrder(CtrlType *, GraphType *, idxtype *, int)
void Compute2WayPartitionParams(CtrlType *, GraphType *)
void fwspacefree(CtrlType *, int)
void MocInit2WayPartition(CtrlType *, GraphType *, float *, float)
int ComputeCut(GraphType *, idxtype *)
void Compute2WayHLoadImbalanceVec(int, float *, float *, float *)
int SelectQueueoneWay(int, float *, float *, int, PQueueType[MAXNCON][2])
void RandomPermute(int, idxtype *, int)
void WritePartition(char *, idxtype *, int, int)
int idxsum_strd(int, idxtype *, int)
int AreAllHVwgtsAbove(int, float, float *, float, float *, float *)
void Greedy_KWayVolBalanceMConn(CtrlType *, GraphType *, int, float *, float, int)
void EstimateCFraction(int, idxtype *, idxtype *, float *, float *)
float ssum_strd(int n, float *x, int)
void Greedy_KWayVolBalance(CtrlType *, GraphType *, int, float *, float, int)
void KWayVolUpdate(CtrlType *, GraphType *, int, int, int, idxtype *, idxtype *, idxtype *)
void metis_mcpartgraphrecursive__(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void mmdelm(int, idxtype *xadj, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, int, int)
int CheckGraph(GraphType *)
void Compute2WayNodePartitionParams(CtrlType *, GraphType *)
void Change2FNumbering2(int, idxtype *, idxtype *)
void Test_PartGraph(int, idxtype *, idxtype *)
void AllocateVolKWayPartitionMemory(CtrlType *, GraphType *, int)
void metis_mcpartgraphkway(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int AreAllVwgtsBelowFast(int, float *, float *, float)
void MocGeneral2WayBalance(CtrlType *, GraphType *, float *, float)
void metis_partmeshnodal__(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void METIS_PARTMESHDUAL(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void MCRandom_KWayEdgeRefineHorizontal(CtrlType *, GraphType *, int, float *, int)
void ComputeKWayVolume(GraphType *, int, idxtype *, idxtype *, idxtype *)
void metis_partmeshnodal(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
int AreAllVwgtsBelow(int, float, float *, float, float *, float)
void metis_meshtodual(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void MocComputeKWayPartitionParams(CtrlType *, GraphType *, int)
void MocFM_2WayEdgeRefine(CtrlType *, GraphType *, float *, int)
void ComputePartitionInfoBipartite(GraphType *, int, idxtype *)
void METIS_mCHPartGraphRecursiveInternal(int *, int *, idxtype *, idxtype *, float *, idxtype *, int *, float *, int *, int *, idxtype *)
void SetUpSplitGraph(GraphType *, GraphType *, int, int)
void metis_wpartgraphrecursive__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void MocAllocate2WayPartitionMemory(CtrlType *, GraphType *)
int * imalloc(int, char *)
void metis_edgend(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
idxtype * idxsmalloc(int, idxtype, char *)
void ComputeKWayBoundary(CtrlType *, GraphType *, int)
void mmdnum(int, idxtype *, idxtype *, idxtype *)
void ChangeMesh2FNumbering(int, idxtype *, int, idxtype *, idxtype *)
void ComputeFillIn(GraphType *, idxtype *)
void metis_partgraphvkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void ConstructSeparator(CtrlType *, GraphType *, float)
void errexit(char *,...)
float * fmalloc(int, char *)
void PQueueReset(PQueueType *)
void metis_estimatememory(int *, idxtype *, idxtype *, int *, int *, int *)
void METIS_NODEND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void Match_HEM(CtrlType *, GraphType *)
void ReadGraph(GraphType *, char *, int *)
void CreateCoarseGraph(CtrlType *, GraphType *, int, idxtype *, idxtype *)
void METIS_mCPartGraphRecursive2(int *nvtxs, int *ncon, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, idxtype *adjwgt, int *wgtflag, int *numflag, int *nparts, float *tpwgts, int *options, int *edgecut, idxtype *part)
void METIS_WPARTGRAPHVKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int VerifyND(int, idxtype *, idxtype *)
void FM_2WayNodeRefineEqWgt(CtrlType *, GraphType *, int)
int IsBalanced(idxtype *, int, float *, float)
int smbfct(int, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, int *, idxtype *, idxtype *, int *)
void metis_partmeshdual__(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void ConstructMinCoverSeparator(CtrlType *, GraphType *, float)
idxtype * idxmalloc(int, char *)
void RandomBisection(CtrlType *, GraphType *, int *, float)
void CreateCoarseGraph_NVW(CtrlType *, GraphType *, int, idxtype *, idxtype *)
idxtype ComputeFillIn2(GraphType *, idxtype *)
GraphType * CreateGraph(void)
void Project2WayNodePartition(CtrlType *, GraphType *)
void ComputeSubDomainGraph(GraphType *, int, idxtype *, idxtype *)
float sdot(int n, float *, float *)
void MlevelNestedDissectionCC(CtrlType *, GraphType *, idxtype *, float, int)
void METIS_NodeComputeSeparator(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *)
int VerifyPartV(int, idxtype *, idxtype *, idxtype *, idxtype *, int, int, idxtype *)
void MinCover_Decompose(idxtype *, idxtype *, int, int, idxtype *, idxtype *, int *)
void TETNODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy)
void * GKmalloc(int, char *)
int CheckRInfo(RInfoType *)
void GrowBisection(CtrlType *, GraphType *, int *, float)
int idxsum(int, idxtype *)
int AreAnyVwgtsBelow(int, float, float *, float, float *, float)
void MocRefineKWayHorizontal(CtrlType *, GraphType *, GraphType *, int, float *)
void METIS_NodeWND(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void ComputePartitionBalance(GraphType *, int, idxtype *, float *)
void WriteMeshPartition(char *, int, int, idxtype *, int, idxtype *)
void GrowBisectionNode(CtrlType *, GraphType *, float)
void MocBalance2Way(CtrlType *, GraphType *, float *, float)
void METIS_PartGraphRecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void ikeyvalsort(int, KeyValueType *)
GraphType * Coarsen2Way(CtrlType *, GraphType *)
int AreAllVwgtsAbove(int, float, float *, float, float *, float)
void SplitGraphOrder(CtrlType *, GraphType *, GraphType *, GraphType *)
void General2WayBalance(CtrlType *, GraphType *, int *)
void ConstructMinCoverSeparator0(CtrlType *, GraphType *, float)
void metis_mcpartgraphrecursive_(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
int samax2(int, float *)
void metis_wpartgraphvkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int IsBetter2wayBalance(int, float *, float *, float *)
void BucketSortKeysInc(int, int, idxtype *, idxtype *, idxtype *)
int WspaceAvail(CtrlType *)
void metis_mcpartgraphrecursive(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void METIS_WPartGraphKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void MlevelNodeBisectionMultiple(CtrlType *, GraphType *, int *, float)
void FM_2WayNodeRefine(CtrlType *, GraphType *, float, int)
void metis_nodewnd(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
int MocIsHBalanced(int, int, float *, float *)
int IsConnectedSubdomain(CtrlType *, GraphType *, int, int)
void sscale(int n, float, float *x)
void SetUpGraph2(GraphType *, int, int, idxtype *, idxtype *, float *, idxtype *)
void metis_meshtodual_(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void PrintSubDomainGraph(GraphType *, int, idxtype *)
void MCMatch_SBHEM(CtrlType *, GraphType *, int)
float ComputeElementBalance(int, int, idxtype *)
void Test_ND(int, idxtype *, idxtype *)
void QUADNODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy)
void METIS_MESHTODUAL(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void MlevelNodeBisection(CtrlType *, GraphType *, int *, float)
void metis_estimatememory__(int *, idxtype *, idxtype *, int *, int *, int *)
void WritePermutation(char *, idxtype *, int)
int CheckBnd(GraphType *)
void METIS_WPartGraphKway2(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int ComputeCoarseGraphSize(int, idxtype *, idxtype *, int, idxtype *, idxtype *, idxtype *)
void idxadd(int, idxtype *, idxtype *)
void ChangeMesh2CNumbering(int, idxtype *)
void metis_meshtonodal__(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void MocGrowBisectionNew2(CtrlType *, GraphType *, float *, float *)
void Greedy_KWayEdgeBalanceMConn(CtrlType *, GraphType *, int, float *, float, int)
idxtype * idxwspacemalloc(CtrlType *, int)
void METIS_PartGraphKway2(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void EliminateComponents(CtrlType *, GraphType *, int, float *, float)
void RandomizeGraph(GraphType *)
void metis_wpartgraphrecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int IsSeparable(GraphType *)
int CheckBnd2(GraphType *)
void METIS_EdgeND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void METIS_MeshToNodal(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
int AreAllHVwgtsBelow(int, float, float *, float, float *, float *)
void SelectQueue(int, float *, float *, int *, int *, PQueueType[MAXNCON][2])
idxtype * ReadMesh(char *, int *, int *, int *)
void MocRefine2Way2(CtrlType *, GraphType *, GraphType *, float *, float *)
int idxamax_strd(int, idxtype *, int)
int SplitGraphOrderCC(CtrlType *, GraphType *, GraphType *, int, idxtype *, idxtype *)
void MlevelNestedDissectionP(CtrlType *, GraphType *, idxtype *, int, int, int, idxtype *)
void Bnd2WayBalance(CtrlType *, GraphType *, int *)
int PQueueDelete(PQueueType *, int, int)
void Refine2Way(CtrlType *, GraphType *, GraphType *, int *, float ubfactor)
int PQueueSeeMax(PQueueType *)
void MCGreedy_KWayEdgeBalanceHorizontal(CtrlType *, GraphType *, int, float *, int)
void METIS_NODEWND(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
int SelectQueueOneWay2(int, float *, PQueueType[MAXNCON][2], float *)
void metis_partgraphvkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
int ComputeMaxNodeGain(int, idxtype *, idxtype *, idxtype *)
int IsHBalanceBetterTT(int, int, float *, float *, float *, float *)
void GENDUALMETIS(int, int, int, idxtype *, idxtype *, idxtype *adjncy)
void ProjectKWayPartition(CtrlType *, GraphType *, int)
int PQueueGetMax(PQueueType *)
void METIS_MeshToDual(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void MCMatch_HEM(CtrlType *, GraphType *)
void metis_wpartgraphkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void METIS_NodeNDP(int, idxtype *, idxtype *, int, int *, idxtype *, idxtype *, idxtype *)
void WriteGraph(char *, int, idxtype *, idxtype *)
void Random_KWayEdgeRefine(CtrlType *, GraphType *, int, float *, float, int, int)
int MlevelKWayPartitioning(CtrlType *, GraphType *, int, idxtype *, float *, float)
void SelectQueue3(int, float *, float *, int *, int *, PQueueType[MAXNCON][2], float *)
int MlevelVolKWayPartitioning(CtrlType *, GraphType *, int, idxtype *, float *, float)
void metis_partgraphrecursive__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void METIS_PartGraphVKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
int mmdint(int, idxtype *xadj, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *)
GraphType * MCCoarsen2Way(CtrlType *, GraphType *)
void metis_edgend__(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void MlevelEdgeBisection(CtrlType *, GraphType *, int *, float)
void AllocateWorkSpace(CtrlType *, GraphType *, int)
void Greedy_KWayEdgeBalance(CtrlType *, GraphType *, int, float *, float, int)
int log2Int(int)
void idxwspacefree(CtrlType *, int)
void PQueueFree(CtrlType *ctrl, PQueueType *)
void Greedy_KWayEdgeRefine(CtrlType *, GraphType *, int, float *, float, int)
void METIS_mCPartGraphKway(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void MoveGroup(CtrlType *, GraphType *, int, int, int, idxtype *, idxtype *)
int IsConnected2(GraphType *, int)
void MocProjectKWayPartition(CtrlType *, GraphType *, int)
void metis_estimatememory_(int *, idxtype *, idxtype *, int *, int *, int *)
void ComputeHKWayLoadImbalance(int, int, float *, float *)
void Allocate2WayNodePartitionMemory(CtrlType *, GraphType *)
int MCMlevelRecursiveBisection2(CtrlType *ctrl, GraphType *graph, int nparts, float *tpwgts, idxtype *part, float ubfactor, int fpart)
void MocInit2WayBalance2(CtrlType *, GraphType *, float *, float *)
void Project2WayPartition(CtrlType *, GraphType *)
int IsConnected(CtrlType *, GraphType *, int)
void METIS_PartMeshDual(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void metis_wpartgraphkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int CheckHeap(PQueueType *)
void MocRefine2Way(CtrlType *, GraphType *, GraphType *, float *, float)
void ChangeMesh2FNumbering2(int, idxtype *, int, int, idxtype *, idxtype *)
void metis_mcpartgraphkway_(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void EliminateVolComponents(CtrlType *, GraphType *, int, float *, float)
int * iset(int n, int val, int *x)
void metis_nodewnd_(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void metis_mcpartgraphkway__(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void metis_nodend(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void Match_SHEM(CtrlType *, GraphType *)
void metis_partmeshdual_(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void metis_meshtonodal_(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void metis_edgend_(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
int idxamax(int, idxtype *)
void Test_PartGraphmC(int, idxtype *, idxtype *)
idxtype * idxset(int n, idxtype val, idxtype *x)
void MCHMlevelEdgeBisection(CtrlType *, GraphType *, float *, float *)
void MCMatch_SHEBM(CtrlType *, GraphType *, int)
int * ismalloc(int, int, char *)
void MocFM_2WayEdgeRefine2(CtrlType *, GraphType *, float *, float *, int)
void METIS_EstimateMemory(int *, idxtype *, idxtype *, int *, int *, int *)
void MinCover_RowDFS(idxtype *, idxtype *, int, idxtype *, idxtype *, int)
void PrintTimers(CtrlType *)
int CheckNodeBnd(GraphType *, int)
void iidxsort(int, idxtype *)
void PQueueUpdateUp(PQueueType *, int, int, int)
float ComputeLoadImbalance(int, int, float *, float *)
void ComputePartitionInfo(GraphType *, int, idxtype *)
void metis_nodend_(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
float snorm2(int, float *)
void MocRandomBisection(CtrlType *, GraphType *, float *, float)
int isum(int, int *)
void EliminateSubDomainEdges(CtrlType *, GraphType *, int, float *)
void VolSetUpGraph(GraphType *, int, int, int, idxtype *, idxtype *, idxtype *, idxtype *, int)
void Init2WayPartition(CtrlType *, GraphType *, int *, float)
void Random_KWayVolRefine(CtrlType *, GraphType *, int, float *, float, int, int)
void iintsort(int, int *)
void METIS_EdgeComputeSeparator(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *)
void SetUpGraph(GraphType *, int, int, int, idxtype *, idxtype *, idxtype *, idxtype *, int)
int samax(int, float *)
void Match_RM_NVW(CtrlType *, GraphType *)
int MlevelRecursiveBisection(CtrlType *, GraphType *, int, idxtype *, float *, float, int)
void metis_wpartgraphrecursive_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void METIS_PartMeshNodal(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void InitTimers(CtrlType *)
void SplitGraphPart(CtrlType *, GraphType *, GraphType *, GraphType *)
int IsHBalanceBetterFT(int, int, float *, float *, float *, float *)
void Allocate2WayPartitionMemory(CtrlType *, GraphType *)
void TRINODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy)
int BetterBalance(int, float *, float *, float *)
int charsum(int, char *)
void metis_meshtonodal(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
int FindComponents(CtrlType *, GraphType *, idxtype *, idxtype *)
void Random_KWayVolRefineMConn(CtrlType *, GraphType *, int, float *, float, int, int)
int idxamin(int, idxtype *)
int PQueueUpdate(PQueueType *, int, int, int)
int VerifyPartmC(int, int, idxtype *, idxtype *, idxtype *, idxtype *, int, float *, int, idxtype *)
void FreeGraph(GraphType *)
void metis_partgraphrecursive_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void MocGrowBisection2(CtrlType *, GraphType *, float *, float *)
int MCHMlevelRecursiveBisection(CtrlType *, GraphType *, int, idxtype *, float *, int)
void MoveGroupMConn(CtrlType *, GraphType *, idxtype *, idxtype *, int, int, int, idxtype *)
void METIS_mCHPartGraphRecursive(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void metis_wpartgraphvkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void HEXNODALMETIS(int, int, idxtype *, idxtype *, idxtype *adjncy)
void metis_wpartgraphkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
float * sset(int n, float val, float *x)
void Balance2Way(CtrlType *, GraphType *, int *, float)
void METIS_mCPartGraphRecursiveInternal(int *, int *, idxtype *, idxtype *, float *, idxtype *, int *, int *, int *, idxtype *)
void METIS_mCPartGraphRecursive(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void METIS_PARTGRAPHVKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void METIS_WPartGraphRecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void metis_nodewnd__(int *, idxtype *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void metis_partmeshdual(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
void METIS_PARTMESHNODAL(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
int MCMlevelKWayPartitioning(CtrlType *, GraphType *, int, idxtype *, float *)
void Moc_ComputePartitionBalance(GraphType *graph, int nparts, idxtype *where, float *ubvec)
void AllocateKWayPartitionMemory(CtrlType *, GraphType *, int)
void MocGeneral2WayBalance2(CtrlType *, GraphType *, float *, float *)
void ComputeVolKWayPartitionParams(CtrlType *, GraphType *, int)
void metis_partgraphvkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
float BetterVBalance(int, int, float *, float *, float *)
void Change2FNumbering(int, idxtype *, idxtype *, idxtype *)
void metis_wpartgraphvkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void SelectQueue2(int, float *, float *, int *, int *, PQueueType[MAXNCON][2], float *)
float ssum(int, float *)
void CreateCoarseGraphNoMask(CtrlType *, GraphType *, int, idxtype *, idxtype *)
void METIS_WPARTGRAPHKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
int PQueueGetKey(PQueueType *)
void FM_2WayNodeRefine_OneSided(CtrlType *, GraphType *, float, int)
void genmmd(int, idxtype *, idxtype *, idxtype *, idxtype *, int, idxtype *, idxtype *, idxtype *, idxtype *, int, int *)
int VerifyWPart(int, idxtype *, idxtype *, idxtype *, idxtype *, int, float *, int, idxtype *)
void METIS_MCPARTGRAPHKWAY(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void InitSeparator(CtrlType *, GraphType *, float)
void MlevelNestedDissection(CtrlType *, GraphType *, idxtype *, float, int)
void METIS_EDGEND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void METIS_ESTIMATEMEMORY(int *, idxtype *, idxtype *, int *, int *, int *)
void MocGrowBisection(CtrlType *, GraphType *, float *, float)
void ComputeKWayVolGains(CtrlType *, GraphType *, int)
void SetUpGraphKway(GraphType *, int, idxtype *, idxtype *)
void Test_PartGraphV(int, idxtype *, idxtype *)
void Change2FNumberingOrder(int, idxtype *, idxtype *, idxtype *, idxtype *)
void RefineVolKWay(CtrlType *, GraphType *, GraphType *, int, float *, float)
void PQueueInit(CtrlType *ctrl, PQueueType *, int, int)
void MCMatch_SHEM(CtrlType *, GraphType *)
void ComputeKWayBalanceBoundary(CtrlType *, GraphType *, int)
void MocBalance2Way2(CtrlType *, GraphType *, float *, float *)
void MCMlevelEdgeBisection(CtrlType *, GraphType *, float *, float)
int iamax(int, int *)
void PruneGraph(CtrlType *, GraphType *, int, idxtype *, idxtype *, idxtype *, float)
void METIS_PartGraphKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
int PQueueGetSize(PQueueType *)
void FM_2WayEdgeRefine(CtrlType *, GraphType *, int *, int)
void MocInit2WayBalance(CtrlType *, GraphType *, float *)
void metis_partgraphkway__(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
int CheckNodePartitionParams(GraphType *)
void MocCompute2WayPartitionParams(CtrlType *, GraphType *)
void CompressGraph(CtrlType *, GraphType *, int, idxtype *, idxtype *, idxtype *, idxtype *)
void Match_RM(CtrlType *, GraphType *)
float * fwspacemalloc(CtrlType *, int)
void METIS_PARTGRAPHKWAY(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void metis_partgraphkway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void InitRandom(int)
void FreeWorkSpace(CtrlType *, GraphType *)
int VerifyPart(int, idxtype *, idxtype *, idxtype *, idxtype *, int, int, idxtype *)
double seconds(void)
void Refine2WayNode(CtrlType *, GraphType *, GraphType *, float)
void metis_partmeshnodal_(int *, int *, idxtype *, int *, int *, int *, int *, idxtype *, idxtype *)
int VerifyWPartV(int, idxtype *, idxtype *, idxtype *, idxtype *, int, float *, int, idxtype *)
void ProjectVolKWayPartition(CtrlType *, GraphType *, int)
void metis_partgraphrecursive(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void MinCover_ColDFS(idxtype *, idxtype *, int, idxtype *, idxtype *, int)
int MCMlevelRecursiveBisection(CtrlType *, GraphType *, int, idxtype *, float, int)
void FM_2WayNodeBalance(CtrlType *, GraphType *, float)
float Compute2WayHLoadImbalance(int, float *, float *)
void Change2CNumbering(int, idxtype *, idxtype *)
void CheckVolKWayPartitionParams(CtrlType *, GraphType *, int)
void METIS_MCPARTGRAPHRECURSIVE(int *, int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void MinCover(idxtype *, idxtype *, int, int, idxtype *, int *)
void ComputeKWayPartitionParams(CtrlType *, GraphType *, int)
void MocInit2WayPartition2(CtrlType *, GraphType *, float *, float *)
void METIS_MESHTONODAL(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void MocProject2WayPartition(CtrlType *, GraphType *)
void ComputeVolKWayBoundary(CtrlType *, GraphType *, int)
int AreAllBelow(int, float *, float *)
void saxpy(int, float, float *, int, float *, int)
void MocComputeKWayBalanceBoundary(CtrlType *, GraphType *, int)
void Random_KWayEdgeRefineMConn(CtrlType *, GraphType *, int, float *, float, int, int)
GraphType * SetUpCoarseGraph(GraphType *, int, int)
void metis_partgraphkway_(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void metis_meshtodual__(int *, int *, idxtype *, int *, int *, idxtype *, idxtype *)
void ComputeVolSubDomainGraph(GraphType *, int, idxtype *, idxtype *)
void METIS_PARTGRAPHRECURSIVE(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
void mmdupd(int, int, idxtype *, idxtype *, int, int *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, idxtype *, int, int *tag)
int ispow2(int)
void ikeysort(int, KeyValueType *)
void metis_nodend__(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void METIS_NodeND(int *, idxtype *, idxtype *, int *, int *, idxtype *, idxtype *)
void EliminateVolSubDomainEdges(CtrlType *, GraphType *, int, float *)
void ReAdjustMemory(GraphType *, GraphType *, int)
int MinCover_Augment(idxtype *, idxtype *, int, idxtype *, idxtype *, idxtype *, int)
int samin(int, float *)
void METIS_WPartGraphVKway(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void METIS_WPARTGRAPHRECURSIVE(int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, float *, int *, int *, idxtype *)
void MCMatch_RM(CtrlType *, GraphType *)
void InitGraph(GraphType *)
int PQueueInsert(PQueueType *, int, int)
void RefineKWay(CtrlType *, GraphType *, GraphType *, int, float *, float)
int idxtype
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:20
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:32
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:56
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:216
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:158
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:121