1 | /* |
---|
2 | * Copyright 1997, Regents of the University of Minnesota |
---|
3 | * |
---|
4 | * defs.h |
---|
5 | * |
---|
6 | * This file contains constant definitions |
---|
7 | * |
---|
8 | * Started 8/27/94 |
---|
9 | * George |
---|
10 | * |
---|
11 | * $Id: defs.h,v 1.1 1998/11/27 17:59:13 karypis Exp $ |
---|
12 | * |
---|
13 | */ |
---|
14 | |
---|
15 | #define METISTITLE " METIS 4.0.1 Copyright 1998, Regents of the University of Minnesota\n\n" |
---|
16 | #define MAXLINE 1280000 |
---|
17 | |
---|
18 | #define LTERM (void **) 0 /* List terminator for GKfree() */ |
---|
19 | |
---|
20 | #define MAXNCON 16 /* The maximum number of constrains */ |
---|
21 | #define MAXNOBJ 16 /* The maximum number of objectives */ |
---|
22 | |
---|
23 | #define PLUS_GAINSPAN 500 /* Parameters for FM buckets */ |
---|
24 | #define NEG_GAINSPAN 500 |
---|
25 | |
---|
26 | #define HTLENGTH ((1<<11)-1) |
---|
27 | |
---|
28 | /* Meaning of various options[] parameters */ |
---|
29 | #define OPTION_PTYPE 0 |
---|
30 | #define OPTION_CTYPE 1 |
---|
31 | #define OPTION_ITYPE 2 |
---|
32 | #define OPTION_RTYPE 3 |
---|
33 | #define OPTION_DBGLVL 4 |
---|
34 | #define OPTION_OFLAGS 5 |
---|
35 | #define OPTION_PFACTOR 6 |
---|
36 | #define OPTION_NSEPS 7 |
---|
37 | |
---|
38 | #define OFLAG_COMPRESS 1 /* Try to compress the graph */ |
---|
39 | #define OFLAG_CCMP 2 /* Find and order connected components */ |
---|
40 | |
---|
41 | |
---|
42 | /* Default options for PMETIS */ |
---|
43 | #define PMETIS_CTYPE MATCH_SHEM |
---|
44 | #define PMETIS_ITYPE IPART_GGPKL |
---|
45 | #define PMETIS_RTYPE RTYPE_FM |
---|
46 | #define PMETIS_DBGLVL 0 |
---|
47 | |
---|
48 | /* Default options for KMETIS */ |
---|
49 | #define KMETIS_CTYPE MATCH_SHEM |
---|
50 | #define KMETIS_ITYPE IPART_PMETIS |
---|
51 | #define KMETIS_RTYPE RTYPE_KWAYRANDOM_MCONN |
---|
52 | #define KMETIS_DBGLVL 0 |
---|
53 | |
---|
54 | /* Default options for OEMETIS */ |
---|
55 | #define OEMETIS_CTYPE MATCH_SHEM |
---|
56 | #define OEMETIS_ITYPE IPART_GGPKL |
---|
57 | #define OEMETIS_RTYPE RTYPE_FM |
---|
58 | #define OEMETIS_DBGLVL 0 |
---|
59 | |
---|
60 | /* Default options for ONMETIS */ |
---|
61 | #define ONMETIS_CTYPE MATCH_SHEM |
---|
62 | #define ONMETIS_ITYPE IPART_GGPKL |
---|
63 | #define ONMETIS_RTYPE RTYPE_SEP1SIDED |
---|
64 | #define ONMETIS_DBGLVL 0 |
---|
65 | #define ONMETIS_OFLAGS OFLAG_COMPRESS |
---|
66 | #define ONMETIS_PFACTOR -1 |
---|
67 | #define ONMETIS_NSEPS 1 |
---|
68 | |
---|
69 | /* Default options for McPMETIS */ |
---|
70 | #define McPMETIS_CTYPE MATCH_SHEBM_ONENORM |
---|
71 | #define McPMETIS_ITYPE IPART_RANDOM |
---|
72 | #define McPMETIS_RTYPE RTYPE_FM |
---|
73 | #define McPMETIS_DBGLVL 0 |
---|
74 | |
---|
75 | /* Default options for McKMETIS */ |
---|
76 | #define McKMETIS_CTYPE MATCH_SHEBM_ONENORM |
---|
77 | #define McKMETIS_ITYPE IPART_McHPMETIS |
---|
78 | #define McKMETIS_RTYPE RTYPE_KWAYRANDOM |
---|
79 | #define McKMETIS_DBGLVL 0 |
---|
80 | |
---|
81 | /* Default options for KVMETIS */ |
---|
82 | #define KVMETIS_CTYPE MATCH_SHEM |
---|
83 | #define KVMETIS_ITYPE IPART_PMETIS |
---|
84 | #define KVMETIS_RTYPE RTYPE_KWAYRANDOM |
---|
85 | #define KVMETIS_DBGLVL 0 |
---|
86 | |
---|
87 | |
---|
88 | /* Operations supported by stand-alone code */ |
---|
89 | #define OP_PMETIS 1 |
---|
90 | #define OP_KMETIS 2 |
---|
91 | #define OP_OEMETIS 3 |
---|
92 | #define OP_ONMETIS 4 |
---|
93 | #define OP_ONWMETIS 5 |
---|
94 | #define OP_KVMETIS 6 |
---|
95 | |
---|
96 | |
---|
97 | /* Matching Schemes */ |
---|
98 | #define MATCH_RM 1 |
---|
99 | #define MATCH_HEM 2 |
---|
100 | #define MATCH_SHEM 3 |
---|
101 | #define MATCH_SHEMKWAY 4 |
---|
102 | #define MATCH_SHEBM_ONENORM 5 |
---|
103 | #define MATCH_SHEBM_INFNORM 6 |
---|
104 | #define MATCH_SBHEM_ONENORM 7 |
---|
105 | #define MATCH_SBHEM_INFNORM 8 |
---|
106 | |
---|
107 | /* Initial partitioning schemes for PMETIS and ONMETIS */ |
---|
108 | #define IPART_GGPKL 1 |
---|
109 | #define IPART_GGPKLNODE 2 |
---|
110 | #define IPART_RANDOM 2 |
---|
111 | |
---|
112 | /* Refinement schemes for PMETIS */ |
---|
113 | #define RTYPE_FM 1 |
---|
114 | |
---|
115 | /* Initial partitioning schemes for KMETIS */ |
---|
116 | #define IPART_PMETIS 1 |
---|
117 | |
---|
118 | /* Refinement schemes for KMETIS */ |
---|
119 | #define RTYPE_KWAYRANDOM 1 |
---|
120 | #define RTYPE_KWAYGREEDY 2 |
---|
121 | #define RTYPE_KWAYRANDOM_MCONN 3 |
---|
122 | |
---|
123 | /* Refinement schemes for ONMETIS */ |
---|
124 | #define RTYPE_SEP2SIDED 1 |
---|
125 | #define RTYPE_SEP1SIDED 2 |
---|
126 | |
---|
127 | /* Initial Partitioning Schemes for McKMETIS */ |
---|
128 | #define IPART_McPMETIS 1 /* Simple McPMETIS */ |
---|
129 | #define IPART_McHPMETIS 2 /* horizontally relaxed McPMETIS */ |
---|
130 | |
---|
131 | #define UNMATCHED -1 |
---|
132 | |
---|
133 | #define HTABLE_EMPTY -1 |
---|
134 | |
---|
135 | #define NGR_PASSES 4 /* Number of greedy refinement passes */ |
---|
136 | #define NLGR_PASSES 5 /* Number of GR refinement during IPartition */ |
---|
137 | |
---|
138 | #define LARGENIPARTS 8 /* Number of random initial partitions */ |
---|
139 | #define SMALLNIPARTS 3 /* Number of random initial partitions */ |
---|
140 | |
---|
141 | #define COARSEN_FRACTION 0.75 /* Node reduction between succesive coarsening levels */ |
---|
142 | #define COARSEN_FRACTION2 0.90 /* Node reduction between succesive coarsening levels */ |
---|
143 | #define UNBALANCE_FRACTION 1.05 |
---|
144 | |
---|
145 | #define COMPRESSION_FRACTION 0.85 |
---|
146 | |
---|
147 | #define ORDER_UNBALANCE_FRACTION 1.10 |
---|
148 | |
---|
149 | #define MMDSWITCH 200 |
---|
150 | |
---|
151 | #define HORIZONTAL_IMBALANCE 1.05 |
---|
152 | |
---|
153 | /* Debug Levels */ |
---|
154 | #define DBG_TIME 1 /* Perform timing analysis */ |
---|
155 | #define DBG_OUTPUT 2 |
---|
156 | #define DBG_COARSEN 4 /* Show the coarsening progress */ |
---|
157 | #define DBG_REFINE 8 /* Show info on communication during folding */ |
---|
158 | #define DBG_IPART 16 /* Show info on initial partition */ |
---|
159 | #define DBG_MOVEINFO 32 /* Show info on communication during folding */ |
---|
160 | #define DBG_KWAYPINFO 64 /* Show info on communication during folding */ |
---|
161 | #define DBG_SEPINFO 128 /* Show info on communication during folding */ |
---|