1 /*
2  * Copyright 2001, Regents of the University of Minnesota
3  *
4  * proto.h
5  *
6  * This file contains header files
7  *
8  * George Irene
9  */
10 
11 
12 /* coarsen.c */
13 GraphType *Coarsen(CtrlType *, GraphType *);
14 GraphType *Coarsen_Restricted(CtrlType *, GraphType *);
15 void CreateCoarseGraph(GraphType *, int, idxtype *, idxtype *);
16 GraphType *SetUpCoarseGraph(GraphType *, int);
17 
18 
19 /* io.c */
20 void ReadGraph(GraphType *, char *);
21 void TransformGraph(char *);
22 void WritePartition(char *, idxtype *, int, int);
23 void PrintGraph(GraphType *);
24 
25 
26 /* kwayfm.c */
27 void Random_KWayARatioRefine(CtrlType *, GraphType *, int);
28 void Random_KWayWeightARatioRefine(CtrlType *, GraphType *, int);
29 void Random_KWaySCutRefine(CtrlType *, GraphType *, int);
30 void Random_KWayMinMaxAverageARatioRefine(CtrlType *, GraphType *, int);
31 void Random_KWayMinMaxARatioRefine(CtrlType *, GraphType *, int);
32 void Random_KWayMultiObjRefine(CtrlType *, GraphType *, int);
33 void Random_KWayMultiObjRefine2(CtrlType *, GraphType *, int);
34 void CheckParams(CtrlType *, GraphType *);
35 
36 
37 /* match.c */
38 void Match_RM(CtrlType *, GraphType *);
39 void Match_HEM(CtrlType *, GraphType *);
40 void Match_HEM_Slow(CtrlType *, GraphType *);
41 void Match_HEM_Slow_Restricted(CtrlType *ctrl, GraphType *graph);
42 void Match_HEM_True(CtrlType *, GraphType *);
43 
44 
45 /* merge.c */
46 void Cycle(CtrlType *, GraphType *, int);
47 void Merge(CtrlType *, GraphType *, int);
48 void Contribute(CtrlType *, GraphType *, int);
49 void Merge_ARatio(CtrlType *, GraphType *);
50 void Merge_WeightARatio(CtrlType *, GraphType *);
51 void Merge_MinMaxARatio(CtrlType *, GraphType *);
52 void Merge_MultiObj(CtrlType *, GraphType *);
53 void Merge0(CtrlType *, GraphType *);
54 void Contribute_ARatio(CtrlType *, GraphType *);
55 void Contribute_WeightARatio(CtrlType *, GraphType *);
56 void Contribute_MinMaxARatio(CtrlType *, GraphType *);
57 void Contribute_MultiObj(CtrlType *, GraphType *);
58 
59 
60 /* mgridgen.c */
61 void MGridGen(int, idxtype *, realtype *, realtype *, idxtype *, realtype *,
62               int, int, int *, int *, int *, idxtype *);
63 void MGridGenRefine(int, idxtype *, realtype *, realtype *, idxtype *,
64                     idxtype *, realtype *, int , int , int *, int *, int *,
65                     idxtype *);
66 void CreateGrid(CtrlType *, GraphType *);
67 
68 
69 /* refine.c */
70 void RefineKWay(CtrlType *, GraphType *, GraphType *, int);
71 void RefineKWayOnce(CtrlType *, GraphType *, int);
72 void ComputeKWayPartitionParams(CtrlType *, GraphType *);
73 void ProjectKWayPartition(GraphType *);
74 void ComputeGridStatistics(CtrlType *, GraphType *);
75 void BreakComponents(CtrlType *, GraphType *);
76 realtype ComputeFunction(int, CtrlType *, GraphType *);
77 void ComputeAllFunctions(CtrlType *, GraphType *);
78 
79 
80 /* setup.c */
81 void SetUpGraph(GraphType *, int, idxtype *, realtype *, realtype *, idxtype *,
82                 realtype *);
83 void FreeGraph(GraphType *);
84 GraphType *CreateGraph(void);
85 
86 
87 /* aratio.c */
88 realtype ARATIO1_2D(realtype, realtype);
89 realtype ARATIO_2D(realtype, realtype);
90 realtype ARATIO2_2D(realtype, realtype);
91 realtype ARATIO1_3D(realtype, realtype);
92 realtype ARATIO_3D(realtype, realtype);
93 realtype ARATIO2_3D(realtype, realtype);
94 typedef realtype (*ASPECTRATIOFUNCTION) (realtype, realtype);
95 extern ASPECTRATIOFUNCTION ARATIO1;
96 extern ASPECTRATIOFUNCTION ARATIO;
97 extern ASPECTRATIOFUNCTION ARATIO2;
98 
99