test_bound: rewrite in C
[barvinok.git] / verify.h
blob996feaf2f0044ff9022d604909e3ad95777b7604
1 #ifndef VERIFY_H
2 #define VERIFY_H
4 #include <barvinok/polylib.h>
5 #include "argp.h"
7 #if defined(__cplusplus)
8 extern "C" {
9 #endif
11 struct verify_options {
12 int verify;
13 int exact;
14 int print_all;
15 int continue_on_error;
16 int m;
17 int M;
18 int r;
20 /* "generated" options */
21 int st;
22 const char **params;
23 struct barvinok_options *barvinok;
26 extern struct argp verify_argp;
27 void verify_options_set_range(struct verify_options *options, int dim);
29 Polyhedron *check_poly_context_scan(Polyhedron *P, Polyhedron **C,
30 unsigned nparam,
31 const struct verify_options *options);
32 void check_poly_init(Polyhedron *C, struct verify_options *options);
33 void check_poly_print(int ok, int nparam, Value *z,
34 Value want_n, Value want_d,
35 Value got_n, Value got_d,
36 const char *op, const char *check,
37 const char *long_op,
38 const struct verify_options *options);
40 struct check_poly_data;
41 typedef int (*check_poly_fun)(const struct check_poly_data *data,
42 int nparam, Value *z,
43 const struct verify_options *options);
44 struct check_poly_data {
45 Value *z;
46 check_poly_fun check;
49 int check_poly(Polyhedron *CS, const struct check_poly_data *data,
50 int nparam, int pos, Value *z,
51 const struct verify_options *options);
53 struct check_EP_data {
54 struct check_poly_data cp;
55 int n_S;
56 Polyhedron **S;
58 const evalue *EP;
61 int check_EP(struct check_EP_data *data, unsigned nvar, unsigned nparam,
62 struct verify_options *options);
63 void check_EP_set_scan(struct check_EP_data *data, Polyhedron *C,
64 unsigned MaxRays);
65 void check_EP_clear_scan(struct check_EP_data *data);
67 __isl_give isl_set *verify_context_set_bounds(__isl_take isl_set *set,
68 const struct verify_options *options);
70 struct verify_point_data {
71 const struct verify_options *options;
72 int n;
73 int s;
74 int error;
77 int verify_point_data_init(struct verify_point_data *vpd,
78 __isl_keep isl_set *context);
79 void verify_point_data_fini(struct verify_point_data *vpd);
81 #if defined(__cplusplus)
83 #endif
85 #endif