1pub const METIS_VER_MAJOR: u32 = 5;
4pub const METIS_VER_MINOR: u32 = 2;
5pub const METIS_VER_SUBMINOR: u32 = 1;
6pub const METIS_NOPTIONS: u32 = 40;
7pub type idx_t = i32;
8pub type real_t = f32;
9extern "C" {
10 pub fn METIS_PartGraphRecursive(
11 nvtxs: *mut idx_t,
12 ncon: *mut idx_t,
13 xadj: *mut idx_t,
14 adjncy: *mut idx_t,
15 vwgt: *mut idx_t,
16 vsize: *mut idx_t,
17 adjwgt: *mut idx_t,
18 nparts: *mut idx_t,
19 tpwgts: *mut real_t,
20 ubvec: *mut real_t,
21 options: *mut idx_t,
22 edgecut: *mut idx_t,
23 part: *mut idx_t,
24 ) -> ::std::os::raw::c_int;
25}
26extern "C" {
27 pub fn METIS_PartGraphKway(
28 nvtxs: *mut idx_t,
29 ncon: *mut idx_t,
30 xadj: *mut idx_t,
31 adjncy: *mut idx_t,
32 vwgt: *mut idx_t,
33 vsize: *mut idx_t,
34 adjwgt: *mut idx_t,
35 nparts: *mut idx_t,
36 tpwgts: *mut real_t,
37 ubvec: *mut real_t,
38 options: *mut idx_t,
39 edgecut: *mut idx_t,
40 part: *mut idx_t,
41 ) -> ::std::os::raw::c_int;
42}
43extern "C" {
44 pub fn METIS_MeshToDual(
45 ne: *mut idx_t,
46 nn: *mut idx_t,
47 eptr: *mut idx_t,
48 eind: *mut idx_t,
49 ncommon: *mut idx_t,
50 numflag: *mut idx_t,
51 r_xadj: *mut *mut idx_t,
52 r_adjncy: *mut *mut idx_t,
53 ) -> ::std::os::raw::c_int;
54}
55extern "C" {
56 pub fn METIS_MeshToNodal(
57 ne: *mut idx_t,
58 nn: *mut idx_t,
59 eptr: *mut idx_t,
60 eind: *mut idx_t,
61 numflag: *mut idx_t,
62 r_xadj: *mut *mut idx_t,
63 r_adjncy: *mut *mut idx_t,
64 ) -> ::std::os::raw::c_int;
65}
66extern "C" {
67 pub fn METIS_PartMeshNodal(
68 ne: *mut idx_t,
69 nn: *mut idx_t,
70 eptr: *mut idx_t,
71 eind: *mut idx_t,
72 vwgt: *mut idx_t,
73 vsize: *mut idx_t,
74 nparts: *mut idx_t,
75 tpwgts: *mut real_t,
76 options: *mut idx_t,
77 objval: *mut idx_t,
78 epart: *mut idx_t,
79 npart: *mut idx_t,
80 ) -> ::std::os::raw::c_int;
81}
82extern "C" {
83 pub fn METIS_PartMeshDual(
84 ne: *mut idx_t,
85 nn: *mut idx_t,
86 eptr: *mut idx_t,
87 eind: *mut idx_t,
88 vwgt: *mut idx_t,
89 vsize: *mut idx_t,
90 ncommon: *mut idx_t,
91 nparts: *mut idx_t,
92 tpwgts: *mut real_t,
93 options: *mut idx_t,
94 objval: *mut idx_t,
95 epart: *mut idx_t,
96 npart: *mut idx_t,
97 ) -> ::std::os::raw::c_int;
98}
99extern "C" {
100 pub fn METIS_NodeND(
101 nvtxs: *mut idx_t,
102 xadj: *mut idx_t,
103 adjncy: *mut idx_t,
104 vwgt: *mut idx_t,
105 options: *mut idx_t,
106 perm: *mut idx_t,
107 iperm: *mut idx_t,
108 ) -> ::std::os::raw::c_int;
109}
110extern "C" {
111 pub fn METIS_Free(ptr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
112}
113extern "C" {
114 pub fn METIS_SetDefaultOptions(options: *mut idx_t) -> ::std::os::raw::c_int;
115}
116extern "C" {
117 pub fn METIS_NodeNDP(
118 nvtxs: idx_t,
119 xadj: *mut idx_t,
120 adjncy: *mut idx_t,
121 vwgt: *mut idx_t,
122 npes: idx_t,
123 options: *mut idx_t,
124 perm: *mut idx_t,
125 iperm: *mut idx_t,
126 sizes: *mut idx_t,
127 ) -> ::std::os::raw::c_int;
128}
129extern "C" {
130 pub fn METIS_ComputeVertexSeparator(
131 nvtxs: *mut idx_t,
132 xadj: *mut idx_t,
133 adjncy: *mut idx_t,
134 vwgt: *mut idx_t,
135 options: *mut idx_t,
136 sepsize: *mut idx_t,
137 part: *mut idx_t,
138 ) -> ::std::os::raw::c_int;
139}
140extern "C" {
141 pub fn METIS_NodeRefine(
142 nvtxs: idx_t,
143 xadj: *mut idx_t,
144 vwgt: *mut idx_t,
145 adjncy: *mut idx_t,
146 where_: *mut idx_t,
147 hmarker: *mut idx_t,
148 ubfactor: real_t,
149 ) -> ::std::os::raw::c_int;
150}
151extern "C" {
152 pub fn METIS_CacheFriendlyReordering(
153 nvtxs: idx_t,
154 xadj: *mut idx_t,
155 adjncy: *mut idx_t,
156 part: *mut idx_t,
157 old2new: *mut idx_t,
158 ) -> ::std::os::raw::c_int;
159}
160#[doc = "< Returned normally"]
161pub const rstatus_et_METIS_OK: rstatus_et = 1;
162#[doc = "< Returned due to erroneous inputs and/or options"]
163pub const rstatus_et_METIS_ERROR_INPUT: rstatus_et = -2;
164#[doc = "< Returned due to insufficient memory"]
165pub const rstatus_et_METIS_ERROR_MEMORY: rstatus_et = -3;
166#[doc = "< Some other errors"]
167pub const rstatus_et_METIS_ERROR: rstatus_et = -4;
168#[doc = " Return codes"]
169pub type rstatus_et = ::std::os::raw::c_int;
170pub const moptype_et_METIS_OP_PMETIS: moptype_et = 0;
171pub const moptype_et_METIS_OP_KMETIS: moptype_et = 1;
172pub const moptype_et_METIS_OP_OMETIS: moptype_et = 2;
173#[doc = " Operation type codes"]
174pub type moptype_et = ::std::os::raw::c_int;
175pub const moptions_et_METIS_OPTION_PTYPE: moptions_et = 0;
176pub const moptions_et_METIS_OPTION_OBJTYPE: moptions_et = 1;
177pub const moptions_et_METIS_OPTION_CTYPE: moptions_et = 2;
178pub const moptions_et_METIS_OPTION_IPTYPE: moptions_et = 3;
179pub const moptions_et_METIS_OPTION_RTYPE: moptions_et = 4;
180pub const moptions_et_METIS_OPTION_DBGLVL: moptions_et = 5;
181pub const moptions_et_METIS_OPTION_NIPARTS: moptions_et = 6;
182pub const moptions_et_METIS_OPTION_NITER: moptions_et = 7;
183pub const moptions_et_METIS_OPTION_NCUTS: moptions_et = 8;
184pub const moptions_et_METIS_OPTION_SEED: moptions_et = 9;
185pub const moptions_et_METIS_OPTION_ONDISK: moptions_et = 10;
186pub const moptions_et_METIS_OPTION_MINCONN: moptions_et = 11;
187pub const moptions_et_METIS_OPTION_CONTIG: moptions_et = 12;
188pub const moptions_et_METIS_OPTION_COMPRESS: moptions_et = 13;
189pub const moptions_et_METIS_OPTION_CCORDER: moptions_et = 14;
190pub const moptions_et_METIS_OPTION_PFACTOR: moptions_et = 15;
191pub const moptions_et_METIS_OPTION_NSEPS: moptions_et = 16;
192pub const moptions_et_METIS_OPTION_UFACTOR: moptions_et = 17;
193pub const moptions_et_METIS_OPTION_NUMBERING: moptions_et = 18;
194pub const moptions_et_METIS_OPTION_DROPEDGES: moptions_et = 19;
195pub const moptions_et_METIS_OPTION_NO2HOP: moptions_et = 20;
196pub const moptions_et_METIS_OPTION_TWOHOP: moptions_et = 21;
197pub const moptions_et_METIS_OPTION_FAST: moptions_et = 22;
198pub const moptions_et_METIS_OPTION_HELP: moptions_et = 23;
199pub const moptions_et_METIS_OPTION_TPWGTS: moptions_et = 24;
200pub const moptions_et_METIS_OPTION_NCOMMON: moptions_et = 25;
201pub const moptions_et_METIS_OPTION_NOOUTPUT: moptions_et = 26;
202pub const moptions_et_METIS_OPTION_BALANCE: moptions_et = 27;
203pub const moptions_et_METIS_OPTION_GTYPE: moptions_et = 28;
204pub const moptions_et_METIS_OPTION_UBVEC: moptions_et = 29;
205#[doc = " Options codes (i.e., options[])"]
206pub type moptions_et = ::std::os::raw::c_int;
207pub const mptype_et_METIS_PTYPE_RB: mptype_et = 0;
208pub const mptype_et_METIS_PTYPE_KWAY: mptype_et = 1;
209#[doc = " Partitioning Schemes"]
210pub type mptype_et = ::std::os::raw::c_int;
211pub const mgtype_et_METIS_GTYPE_DUAL: mgtype_et = 0;
212pub const mgtype_et_METIS_GTYPE_NODAL: mgtype_et = 1;
213#[doc = " Graph types for meshes"]
214pub type mgtype_et = ::std::os::raw::c_int;
215pub const mctype_et_METIS_CTYPE_RM: mctype_et = 0;
216pub const mctype_et_METIS_CTYPE_SHEM: mctype_et = 1;
217#[doc = " Coarsening Schemes"]
218pub type mctype_et = ::std::os::raw::c_int;
219pub const miptype_et_METIS_IPTYPE_GROW: miptype_et = 0;
220pub const miptype_et_METIS_IPTYPE_RANDOM: miptype_et = 1;
221pub const miptype_et_METIS_IPTYPE_EDGE: miptype_et = 2;
222pub const miptype_et_METIS_IPTYPE_NODE: miptype_et = 3;
223pub const miptype_et_METIS_IPTYPE_METISRB: miptype_et = 4;
224#[doc = " Initial partitioning schemes"]
225pub type miptype_et = ::std::os::raw::c_int;
226pub const mrtype_et_METIS_RTYPE_FM: mrtype_et = 0;
227pub const mrtype_et_METIS_RTYPE_GREEDY: mrtype_et = 1;
228pub const mrtype_et_METIS_RTYPE_SEP2SIDED: mrtype_et = 2;
229pub const mrtype_et_METIS_RTYPE_SEP1SIDED: mrtype_et = 3;
230#[doc = " Refinement schemes"]
231pub type mrtype_et = ::std::os::raw::c_int;
232#[doc = "< Shows various diagnostic messages"]
233pub const mdbglvl_et_METIS_DBG_INFO: mdbglvl_et = 1;
234#[doc = "< Perform timing analysis"]
235pub const mdbglvl_et_METIS_DBG_TIME: mdbglvl_et = 2;
236#[doc = "< Show the coarsening progress"]
237pub const mdbglvl_et_METIS_DBG_COARSEN: mdbglvl_et = 4;
238#[doc = "< Show the refinement progress"]
239pub const mdbglvl_et_METIS_DBG_REFINE: mdbglvl_et = 8;
240#[doc = "< Show info on initial partitioning"]
241pub const mdbglvl_et_METIS_DBG_IPART: mdbglvl_et = 16;
242#[doc = "< Show info on vertex moves during refinement"]
243pub const mdbglvl_et_METIS_DBG_MOVEINFO: mdbglvl_et = 32;
244#[doc = "< Show info on vertex moves during sep refinement"]
245pub const mdbglvl_et_METIS_DBG_SEPINFO: mdbglvl_et = 64;
246#[doc = "< Show info on minimization of subdomain connectivity"]
247pub const mdbglvl_et_METIS_DBG_CONNINFO: mdbglvl_et = 128;
248#[doc = "< Show info on elimination of connected components"]
249pub const mdbglvl_et_METIS_DBG_CONTIGINFO: mdbglvl_et = 256;
250#[doc = "< Show info related to wspace allocation"]
251pub const mdbglvl_et_METIS_DBG_MEMORY: mdbglvl_et = 2048;
252#[doc = " Debug Levels"]
253pub type mdbglvl_et = ::std::os::raw::c_int;
254pub const mobjtype_et_METIS_OBJTYPE_CUT: mobjtype_et = 0;
255pub const mobjtype_et_METIS_OBJTYPE_VOL: mobjtype_et = 1;
256pub const mobjtype_et_METIS_OBJTYPE_NODE: mobjtype_et = 2;
257pub type mobjtype_et = ::std::os::raw::c_int;