1 #ifndef BARVINOK_OPTIONS_H
2 #define BARVINOK_OPTIONS_H
6 #if defined(__cplusplus)
10 struct barvinok_stats
{
12 long volume_simplices
;
15 void barvinok_stats_clear(struct barvinok_stats
*stats
);
16 void barvinok_stats_print(struct barvinok_stats
*stats
, FILE *out
);
18 struct barvinok_options
{
19 struct barvinok_stats
*stats
;
25 /* LLL reduction parameter delta=LLL_a/LLL_b */
29 /* barvinok options */
30 #define BV_SPECIALIZATION_BF 2
31 #define BV_SPECIALIZATION_DF 1
32 #define BV_SPECIALIZATION_RANDOM 0
33 int incremental_specialization
;
35 unsigned long max_index
;
38 int count_sample_infinite
;
40 int try_Delaunay_triangulation
;
42 #define BV_APPROX_SIGN_NONE 0
43 #define BV_APPROX_SIGN_APPROX 1
44 #define BV_APPROX_SIGN_LOWER 2
45 #define BV_APPROX_SIGN_UPPER 3
46 int polynomial_approximation
;
47 #define BV_APPROX_NONE 0
48 #define BV_APPROX_DROP 1
49 #define BV_APPROX_SCALE 2
50 #define BV_APPROX_VOLUME 3
51 int approximation_method
;
52 #define BV_APPROX_SCALE_FAST (1 << 0)
53 #define BV_APPROX_SCALE_NARROW (1 << 1)
54 #define BV_APPROX_SCALE_NARROW2 (1 << 2)
55 #define BV_APPROX_SCALE_CHAMBER (1 << 3)
58 #define BV_VOL_VERTEX 1
59 #define BV_VOL_BARYCENTER 2
60 int volume_triangulate
;
62 /* basis reduction options */
68 /* bernstein options */
69 #define BV_BERNSTEIN_NONE 0
70 #define BV_BERNSTEIN_MAX 1
71 #define BV_BERNSTEIN_MIN -1
72 int bernstein_optimize
;
74 #define BV_BERNSTEIN_FACTORS 1
75 #define BV_BERNSTEIN_INTERVALS 2
76 int bernstein_recurse
;
79 struct barvinok_options
*barvinok_options_new_with_defaults();
80 void barvinok_options_free(struct barvinok_options
*options
);
82 #define BV_OPT_SPECIALIZATION 256
83 #define BV_OPT_PRIMAL 257
84 #define BV_OPT_TABLE 258
85 #define BV_OPT_GBR 259
86 #define BV_OPT_MAXINDEX 260
87 #define BV_OPT_POLAPPROX 261
88 #define BV_OPT_APPROX 262
89 #define BV_OPT_SCALE 263
90 #define BV_OPT_VOL 264
91 #define BV_OPT_RECURSE 265
92 #define BV_OPT_LAST 265
94 #define BV_GRP_APPROX 1
98 extern struct argp barvinok_argp
;
100 #if defined(__cplusplus)