doc: document inner_point
[barvinok.git] / barvinok / options.h
blob79a8c1140f1db6d94b869d1c5a413033bac860c7
1 #ifndef BARVINOK_OPTIONS_H
2 #define BARVINOK_OPTIONS_H
4 #include <stdio.h>
6 #if defined(__cplusplus)
7 extern "C" {
8 #endif
10 struct barvinok_stats {
11 long base_cones;
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 /* PolyLib options */
20 unsigned MaxRays;
22 /* NTL options */
23 /* LLL reduction parameter delta=LLL_a/LLL_b */
24 long LLL_a;
25 long LLL_b;
27 /* barvinok options */
29 * 0: no
30 * 1: depth first
31 * 2: breadth first
33 #define BV_SPECIALIZATION_BF 2
34 #define BV_SPECIALIZATION_DF 1
35 #define BV_SPECIALIZATION_RANDOM 0
36 int incremental_specialization;
38 unsigned long max_index;
39 int primal;
40 int lookup_table;
41 int count_sample_infinite;
43 int try_Delaunay_triangulation;
45 #define BV_APPROX_SIGN_NONE 0
46 #define BV_APPROX_SIGN_APPROX 1
47 #define BV_APPROX_SIGN_LOWER 2
48 #define BV_APPROX_SIGN_UPPER 3
49 int polynomial_approximation;
50 #define BV_APPROX_NONE 0
51 #define BV_APPROX_DROP 1
52 #define BV_APPROX_SCALE 2
53 #define BV_APPROX_VOLUME 3
54 int approximation_method;
55 #define BV_APPROX_SCALE_FAST (1 << 0)
56 #define BV_APPROX_SCALE_NARROW (1 << 1)
57 #define BV_APPROX_SCALE_NARROW2 (1 << 2)
58 #define BV_APPROX_SCALE_CHAMBER (1 << 3)
59 int scale_flags;
60 #define BV_VOL_LIFT 0
61 #define BV_VOL_VERTEX 1
62 #define BV_VOL_BARYCENTER 2
63 int volume_triangulate;
65 /* basis reduction options */
66 #define BV_GBR_NONE 0
67 #define BV_GBR_GLPK 1
68 #define BV_GBR_CDD 2
69 int gbr_lp_solver;
71 /* bernstein options */
72 #define BV_BERNSTEIN_NONE 0
73 #define BV_BERNSTEIN_MAX 1
74 #define BV_BERNSTEIN_MIN -1
75 int bernstein_optimize;
77 #define BV_BERNSTEIN_FACTORS 1
78 #define BV_BERNSTEIN_INTERVALS 2
79 int bernstein_recurse;
81 struct barvinok_stats *stats;
84 struct barvinok_options *barvinok_options_new_with_defaults();
85 void barvinok_options_free(struct barvinok_options *options);
87 #define BV_OPT_SPECIALIZATION 256
88 #define BV_OPT_PRIMAL 257
89 #define BV_OPT_TABLE 258
90 #define BV_OPT_GBR 259
91 #define BV_OPT_MAXINDEX 260
92 #define BV_OPT_POLAPPROX 261
93 #define BV_OPT_APPROX 262
94 #define BV_OPT_SCALE 263
95 #define BV_OPT_VOL 264
96 #define BV_OPT_LAST 264
98 #define BV_GRP_APPROX 1
99 #define BV_GRP_LAST 1
101 struct argp;
102 extern struct argp barvinok_argp;
104 #if defined(__cplusplus)
106 #endif
108 #endif