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