gtsam
3rdparty
metis
libmetis
libmetis/struct.h
Go to the documentation of this file.
1
/*
2
* Copyright 1997, Regents of the University of Minnesota
3
*
4
* struct.h
5
*
6
* This file contains data structures for ILU routines.
7
*
8
* Started 9/26/95
9
* George
10
*
11
* $Id: struct.h 13900 2013-03-24 15:27:07Z karypis $
12
*/
13
14
#ifndef _LIBMETIS_STRUCT_H_
15
#define _LIBMETIS_STRUCT_H_
16
17
18
19
/*************************************************************************/
22
/*************************************************************************/
23
typedef
struct
cnbr_t
{
24
idx_t
pid
;
25
idx_t
ed
;
27
}
cnbr_t
;
28
29
30
/*************************************************************************/
33
/*************************************************************************/
34
typedef
struct
ckrinfo_t
{
35
idx_t
id
;
36
idx_t
ed
;
37
idx_t
nnbrs
;
38
idx_t
inbr
;
40
}
ckrinfo_t
;
41
42
43
/*************************************************************************/
46
/*************************************************************************/
47
typedef
struct
vnbr_t
{
48
idx_t
pid
;
49
idx_t
ned
;
51
idx_t
gv
;
53
}
vnbr_t
;
54
55
56
/*************************************************************************/
59
/*************************************************************************/
60
typedef
struct
vkrinfo_t
{
61
idx_t
nid
;
62
idx_t
ned
;
63
idx_t
gv
;
64
idx_t
nnbrs
;
65
idx_t
inbr
;
67
}
vkrinfo_t
;
68
69
70
/*************************************************************************/
73
/*************************************************************************/
74
typedef
struct
nrinfo_t
{
75
idx_t
edegrees
[2];
76
}
nrinfo_t
;
77
78
79
/*************************************************************************/
81
/*************************************************************************/
82
typedef
struct
graph_t
{
83
idx_t
nvtxs
,
nedges
;
/* The # of vertices and edges in the graph */
84
idx_t
ncon
;
/* The # of constrains */
85
idx_t
*
xadj
;
/* Pointers to the locally stored vertices */
86
idx_t
*
vwgt
;
/* Vertex weights */
87
idx_t
*
vsize
;
/* Vertex sizes for min-volume formulation */
88
idx_t
*
adjncy
;
/* Array that stores the adjacency lists of nvtxs */
89
idx_t
*
adjwgt
;
/* Array that stores the weights of the adjacency lists */
90
91
idx_t
*
tvwgt
;
/* The sum of the vertex weights in the graph */
92
real_t
*
invtvwgt
;
/* The inverse of the sum of the vertex weights in the graph */
93
94
95
/* These are to keep track control if the corresponding fields correspond to
96
application or library memory */
97
int
free_xadj
,
free_vwgt
,
free_vsize
,
free_adjncy
,
free_adjwgt
;
98
99
idx_t
*
label
;
100
101
idx_t
*
cmap
;
102
103
/* Partition parameters */
104
idx_t
mincut
,
minvol
;
105
idx_t
*
where
, *
pwgts
;
106
idx_t
nbnd
;
107
idx_t
*
bndptr
, *
bndind
;
108
109
/* Bisection refinement parameters */
110
idx_t
*
id
, *
ed
;
111
112
/* K-way refinement parameters */
113
ckrinfo_t
*
ckrinfo
;
114
vkrinfo_t
*
vkrinfo
;
116
/* Node refinement information */
117
nrinfo_t
*
nrinfo
;
118
119
struct
graph_t
*
coarser
, *
finer
;
120
}
graph_t
;
121
122
123
/*************************************************************************/
125
/*************************************************************************/
126
typedef
struct
mesh_t
{
127
idx_t
ne
,
nn
;
128
idx_t
ncon
;
130
idx_t
*
eptr
, *
eind
;
131
idx_t
*
ewgt
;
132
}
mesh_t
;
133
134
135
136
/*************************************************************************/
138
/*************************************************************************/
139
typedef
struct
ctrl_t
{
140
moptype_et
optype
;
/* Type of operation */
141
mobjtype_et
objtype
;
/* Type of refinement objective */
142
mdbglvl_et
dbglvl
;
/* Controls the debuging output of the program */
143
mctype_et
ctype
;
/* The type of coarsening */
144
miptype_et
iptype
;
/* The type of initial partitioning */
145
mrtype_et
rtype
;
/* The type of refinement */
146
147
idx_t
CoarsenTo
;
/* The # of vertices in the coarsest graph */
148
idx_t
nIparts
;
/* The number of initial partitions to compute */
149
idx_t
no2hop
;
/* Indicates if 2-hop matching will be used */
150
idx_t
minconn
;
/* Indicates if the subdomain connectivity will be minimized */
151
idx_t
contig
;
/* Indicates if contigous partitions are required */
152
idx_t
nseps
;
/* The number of separators to be found during multiple bisections */
153
idx_t
ufactor
;
/* The user-supplied load imbalance factor */
154
idx_t
compress
;
/* If the graph will be compressed prior to ordering */
155
idx_t
ccorder
;
/* If connected components will be ordered separately */
156
idx_t
seed
;
/* The seed for the random number generator */
157
idx_t
ncuts
;
/* The number of different partitionings to compute */
158
idx_t
niter
;
/* The number of iterations during each refinement */
159
idx_t
numflag
;
/* The user-supplied numflag for the graph */
160
idx_t
*
maxvwgt
;
/* The maximum allowed weight for a vertex */
161
162
idx_t
ncon
;
163
idx_t
nparts
;
165
real_t
pfactor
;
/* .1*(user-supplied prunning factor) */
166
167
real_t
*
ubfactors
;
169
real_t
*
tpwgts
;
170
real_t
*
pijbm
;
173
real_t
cfactor
;
175
/* Various Timers */
176
double
TotalTmr
,
InitPartTmr
,
MatchTmr
,
ContractTmr
,
CoarsenTmr
,
UncoarsenTmr
,
177
RefTmr
,
ProjectTmr
,
SplitTmr
,
Aux1Tmr
,
Aux2Tmr
,
Aux3Tmr
;
178
179
/* Workspace information */
180
gk_mcore_t
*
mcore
;
183
/* These are for use by the k-way refinement routines */
184
size_t
nbrpoolsize
;
185
size_t
nbrpoolcpos
;
186
size_t
nbrpoolreallocs
;
188
cnbr_t
*
cnbrpool
;
191
vnbr_t
*
vnbrpool
;
195
/* The subdomain graph, in sparse format */
196
idx_t
*
maxnads
;
/* The maximum allocated number of adjacent domains */
197
idx_t
*
nads
;
/* The number of adjacent domains */
198
idx_t
**
adids
;
/* The IDs of the adjacent domains */
199
idx_t
**
adwgts
;
/* The edge-weight to the adjacent domains */
200
idx_t
*
pvec1
, *
pvec2
;
/* Auxiliar nparts-size vectors for efficiency */
201
202
}
ctrl_t
;
203
204
205
206
#endif
ctrl_t::compress
idx_t compress
Definition:
libmetis/struct.h:154
ckrinfo_t::nnbrs
idx_t nnbrs
Definition:
libmetis/struct.h:37
graph_t::tvwgt
idx_t * tvwgt
Definition:
libmetis/struct.h:91
ckrinfo_t::ed
idx_t ed
Definition:
libmetis/struct.h:36
ctrl_t::ContractTmr
double ContractTmr
Definition:
libmetis/struct.h:176
cnbr_t
Definition:
libmetis/struct.h:23
moptype_et
moptype_et
Definition:
include/metis.h:262
ctrl_t::pvec2
idx_t * pvec2
Definition:
libmetis/struct.h:200
ctrl_t::rtype
mrtype_et rtype
Definition:
libmetis/struct.h:145
graph_t::vwgt
idx_t * vwgt
Definition:
libmetis/struct.h:86
ctrl_t::pijbm
real_t * pijbm
Definition:
libmetis/struct.h:170
mesh_t
struct mesh_t mesh_t
ctrl_t::nparts
idx_t nparts
Definition:
libmetis/struct.h:163
vkrinfo_t::nid
idx_t nid
Definition:
libmetis/struct.h:61
graph_t::invtvwgt
real_t * invtvwgt
Definition:
libmetis/struct.h:92
mesh_t
Definition:
libmetis/struct.h:126
mrtype_et
mrtype_et
Definition:
include/metis.h:330
cnbr_t::ed
idx_t ed
Definition:
libmetis/struct.h:25
ctrl_t::Aux2Tmr
double Aux2Tmr
Definition:
libmetis/struct.h:177
ctrl_t::ubfactors
real_t * ubfactors
Definition:
libmetis/struct.h:167
vkrinfo_t
Definition:
libmetis/struct.h:60
mesh_t::eptr
idx_t * eptr
Definition:
libmetis/struct.h:130
ctrl_t
Definition:
libmetis/struct.h:139
vkrinfo_t::nnbrs
idx_t nnbrs
Definition:
libmetis/struct.h:64
mobjtype_et
mobjtype_et
Definition:
include/metis.h:354
graph_t::xadj
idx_t * xadj
Definition:
libmetis/struct.h:85
ctrl_t::RefTmr
double RefTmr
Definition:
libmetis/struct.h:177
ctrl_t::contig
idx_t contig
Definition:
libmetis/struct.h:151
graph_t::adjwgt
idx_t * adjwgt
Definition:
libmetis/struct.h:89
graph_t::where
idx_t * where
Definition:
libmetis/struct.h:105
ctrl_t::tpwgts
real_t * tpwgts
Definition:
libmetis/struct.h:169
cnbr_t::pid
idx_t pid
Definition:
libmetis/struct.h:24
graph_t::nedges
idx_t nedges
Definition:
libmetis/struct.h:83
graph_t::mincut
idx_t mincut
Definition:
libmetis/struct.h:104
ctrl_t::InitPartTmr
double InitPartTmr
Definition:
libmetis/struct.h:176
ctrl_t::maxnads
idx_t * maxnads
Definition:
libmetis/struct.h:196
ctrl_t::cnbrpool
cnbr_t * cnbrpool
Definition:
libmetis/struct.h:188
vkrinfo_t::ned
idx_t ned
Definition:
libmetis/struct.h:62
graph_t::minvol
idx_t minvol
Definition:
libmetis/struct.h:104
graph_t::bndind
idx_t * bndind
Definition:
libmetis/struct.h:107
graph_t::vkrinfo
vkrinfo_t * vkrinfo
Definition:
libmetis/struct.h:114
ctrl_t::Aux1Tmr
double Aux1Tmr
Definition:
libmetis/struct.h:177
ctrl_t::MatchTmr
double MatchTmr
Definition:
libmetis/struct.h:176
vnbr_t
struct vnbr_t vnbr_t
vnbr_t
Definition:
libmetis/struct.h:47
nrinfo_t
struct nrinfo_t nrinfo_t
graph_t::cmap
idx_t * cmap
Definition:
libmetis/struct.h:101
graph_t::free_xadj
int free_xadj
Definition:
libmetis/struct.h:97
ctrl_t::UncoarsenTmr
double UncoarsenTmr
Definition:
libmetis/struct.h:176
ctrl_t::nads
idx_t * nads
Definition:
libmetis/struct.h:197
graph_t::nrinfo
nrinfo_t * nrinfo
Definition:
libmetis/struct.h:117
ctrl_t::pvec1
idx_t * pvec1
Definition:
libmetis/struct.h:200
ctrl_t::iptype
miptype_et iptype
Definition:
libmetis/struct.h:144
ctrl_t::adwgts
idx_t ** adwgts
Definition:
libmetis/struct.h:199
graph_t::pwgts
idx_t * pwgts
Definition:
libmetis/struct.h:105
ctrl_t::Aux3Tmr
double Aux3Tmr
Definition:
libmetis/struct.h:177
graph_t::free_adjncy
int free_adjncy
Definition:
libmetis/struct.h:97
vkrinfo_t::gv
idx_t gv
Definition:
libmetis/struct.h:63
ctrl_t::nIparts
idx_t nIparts
Definition:
libmetis/struct.h:148
ctrl_t::CoarsenTmr
double CoarsenTmr
Definition:
libmetis/struct.h:176
vkrinfo_t::inbr
idx_t inbr
Definition:
libmetis/struct.h:65
ctrl_t::nbrpoolsize
size_t nbrpoolsize
Definition:
libmetis/struct.h:184
ckrinfo_t
Definition:
libmetis/struct.h:34
ctrl_t::objtype
mobjtype_et objtype
Definition:
libmetis/struct.h:141
ckrinfo_t::inbr
idx_t inbr
Definition:
libmetis/struct.h:38
ctrl_t::CoarsenTo
idx_t CoarsenTo
Definition:
libmetis/struct.h:147
graph_t::vsize
idx_t * vsize
Definition:
libmetis/struct.h:87
graph_t
struct graph_t graph_t
ctrl_t::nbrpoolreallocs
size_t nbrpoolreallocs
Definition:
libmetis/struct.h:186
graph_t::ckrinfo
ckrinfo_t * ckrinfo
Definition:
libmetis/struct.h:113
graph_t::nvtxs
idx_t nvtxs
Definition:
libmetis/struct.h:83
ctrl_t::maxvwgt
idx_t * maxvwgt
Definition:
libmetis/struct.h:160
graph_t::nbnd
idx_t nbnd
Definition:
libmetis/struct.h:106
ctrl_t::SplitTmr
double SplitTmr
Definition:
libmetis/struct.h:177
cnbr_t
struct cnbr_t cnbr_t
ctrl_t::minconn
idx_t minconn
Definition:
libmetis/struct.h:150
graph_t::label
idx_t * label
Definition:
libmetis/struct.h:99
vnbr_t::pid
idx_t pid
Definition:
libmetis/struct.h:48
ctrl_t::ProjectTmr
double ProjectTmr
Definition:
libmetis/struct.h:177
ctrl_t::ccorder
idx_t ccorder
Definition:
libmetis/struct.h:155
graph_t::coarser
struct graph_t * coarser
Definition:
libmetis/struct.h:119
graph_t::free_vsize
int free_vsize
Definition:
libmetis/struct.h:97
ckrinfo_t::id
idx_t id
Definition:
libmetis/struct.h:35
ctrl_t::TotalTmr
double TotalTmr
Definition:
libmetis/struct.h:176
ctrl_t::cfactor
real_t cfactor
Definition:
libmetis/struct.h:173
gk_mcore_t
Definition:
gk_struct.h:242
ctrl_t::nseps
idx_t nseps
Definition:
libmetis/struct.h:152
graph_t::finer
struct graph_t * finer
Definition:
libmetis/struct.h:119
mdbglvl_et
mdbglvl_et
Definition:
include/metis.h:339
graph_t::ncon
idx_t ncon
Definition:
libmetis/struct.h:84
nrinfo_t::edegrees
idx_t edegrees[2]
Definition:
libmetis/struct.h:75
mesh_t::eind
idx_t * eind
Definition:
libmetis/struct.h:130
ctrl_t::adids
idx_t ** adids
Definition:
libmetis/struct.h:198
ctrl_t::ufactor
idx_t ufactor
Definition:
libmetis/struct.h:153
ctrl_t::seed
idx_t seed
Definition:
libmetis/struct.h:156
ctrl_t::optype
moptype_et optype
Definition:
libmetis/struct.h:140
vnbr_t::ned
idx_t ned
Definition:
libmetis/struct.h:49
graph_t::adjncy
idx_t * adjncy
Definition:
libmetis/struct.h:88
real_t
float real_t
Definition:
include/metis.h:132
ctrl_t::niter
idx_t niter
Definition:
libmetis/struct.h:158
vkrinfo_t
struct vkrinfo_t vkrinfo_t
nrinfo_t
Definition:
libmetis/struct.h:74
graph_t::bndptr
idx_t * bndptr
Definition:
libmetis/struct.h:107
ctrl_t::ctype
mctype_et ctype
Definition:
libmetis/struct.h:143
mesh_t::ncon
idx_t ncon
Definition:
libmetis/struct.h:128
ctrl_t::pfactor
real_t pfactor
Definition:
libmetis/struct.h:165
mctype_et
mctype_et
Definition:
include/metis.h:314
ctrl_t::ncon
idx_t ncon
Definition:
libmetis/struct.h:162
ctrl_t::dbglvl
mdbglvl_et dbglvl
Definition:
libmetis/struct.h:142
ctrl_t::ncuts
idx_t ncuts
Definition:
libmetis/struct.h:157
ctrl_t::no2hop
idx_t no2hop
Definition:
libmetis/struct.h:149
ctrl_t::mcore
gk_mcore_t * mcore
Definition:
libmetis/struct.h:180
graph_t::free_adjwgt
int free_adjwgt
Definition:
libmetis/struct.h:97
vnbr_t::gv
idx_t gv
Definition:
libmetis/struct.h:51
miptype_et
miptype_et
Definition:
include/metis.h:320
ctrl_t::numflag
idx_t numflag
Definition:
libmetis/struct.h:159
mesh_t::ewgt
idx_t * ewgt
Definition:
libmetis/struct.h:131
graph_t::id
idx_t * id
Definition:
libmetis/struct.h:110
graph_t::ed
idx_t * ed
Definition:
libmetis/struct.h:110
ctrl_t::nbrpoolcpos
size_t nbrpoolcpos
Definition:
libmetis/struct.h:185
ckrinfo_t
struct ckrinfo_t ckrinfo_t
mesh_t::ne
idx_t ne
Definition:
libmetis/struct.h:127
mesh_t::nn
idx_t nn
Definition:
libmetis/struct.h:127
ctrl_t
struct ctrl_t ctrl_t
ctrl_t::vnbrpool
vnbr_t * vnbrpool
Definition:
libmetis/struct.h:191
graph_t::free_vwgt
int free_vwgt
Definition:
libmetis/struct.h:97
graph_t
Definition:
libmetis/struct.h:82
idx_t
int32_t idx_t
Definition:
include/metis.h:101
gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:05:01