remove bernstein
[barvinok.git] / verify.h
blobaeae44ebcb988c522ba5d902f8ba3e3541c4bcbb
1 #ifndef VERIFY_H
2 #define VERIFY_H
4 #include <isl_arg.h>
5 #include <isl_set.h>
6 #include <barvinok/polylib.h>
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
12 struct verify_options {
13 int verify;
14 int exact;
15 int print_all;
16 int continue_on_error;
17 long m;
18 long M;
19 long r;
21 /* "generated" options */
22 int st;
23 const char **params;
24 struct barvinok_options *barvinok;
27 ISL_ARG_DECL(verify_options, struct verify_options, verify_options_arg)
29 void verify_options_set_range(struct verify_options *options, int dim);
31 Polyhedron *check_poly_context_scan(Polyhedron *P, Polyhedron **C,
32 unsigned nparam,
33 const struct verify_options *options);
34 void check_poly_init(Polyhedron *C, struct verify_options *options);
35 void check_poly_print(int ok, int nparam, Value *z,
36 Value want_n, Value want_d,
37 Value got_n, Value got_d,
38 const char *op, const char *check,
39 const char *long_op,
40 const struct verify_options *options);
42 struct check_poly_data;
43 typedef int (*check_poly_fun)(const struct check_poly_data *data,
44 int nparam, Value *z,
45 const struct verify_options *options);
46 struct check_poly_data {
47 Value *z;
48 check_poly_fun check;
51 int check_poly(Polyhedron *CS, const struct check_poly_data *data,
52 int nparam, int pos, Value *z,
53 const struct verify_options *options);
55 struct check_EP_data {
56 struct check_poly_data cp;
57 int n_S;
58 Polyhedron **S;
60 const evalue *EP;
63 int check_EP(struct check_EP_data *data, unsigned nvar, unsigned nparam,
64 struct verify_options *options);
65 void check_EP_set_scan(struct check_EP_data *data, Polyhedron *C,
66 unsigned MaxRays);
67 void check_EP_clear_scan(struct check_EP_data *data);
69 __isl_give isl_set *verify_context_set_bounds(__isl_take isl_set *set,
70 const struct verify_options *options);
72 struct verify_point_data {
73 const struct verify_options *options;
74 int n;
75 int s;
76 int error;
79 int verify_point_data_init(struct verify_point_data *vpd,
80 __isl_keep isl_set *context);
81 void verify_point_data_fini(struct verify_point_data *vpd);
83 #if defined(__cplusplus)
85 #endif
87 #endif