iscc: add intersect_domain operations
[barvinok.git] / barvinok / barvinok.h
blob2055a34445add5f509b5e5d316244b5e9d506363
1 #ifndef BARVINOK_H
2 #define BARVINOK_H
4 #include <isl_polynomial.h>
5 #include <isl_set.h>
6 #include <barvinok/evalue.h>
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
12 __isl_give isl_pw_qpolynomial *isl_set_card(__isl_take isl_set *set);
13 __isl_give isl_pw_qpolynomial *isl_map_card(__isl_take isl_map *map);
14 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_sum(
15 __isl_take isl_pw_qpolynomial *pwqp);
17 #include <barvinok/options.h>
19 void barvinok_decompose(Polyhedron *C, Polyhedron **ppos, Polyhedron **pneg);
20 void barvinok_count(Polyhedron *P, Value* result, unsigned NbMaxCons);
21 void barvinok_count_with_options(Polyhedron *P, Value* result,
22 struct barvinok_options *options);
23 Enumeration* barvinok_enumerate(Polyhedron *P, Polyhedron* C, unsigned MaxRays);
24 evalue* barvinok_enumerate_ev(Polyhedron *P, Polyhedron* C, unsigned MaxRays);
25 evalue* barvinok_enumerate_with_options(Polyhedron *P, Polyhedron* C,
26 struct barvinok_options *options);
27 evalue *Param_Polyhedron_Enumerate(Param_Polyhedron *PP, Polyhedron *P,
28 Polyhedron *C,
29 struct barvinok_options *options);
30 evalue* barvinok_enumerate_e(Polyhedron *P,
31 unsigned exist, unsigned nparam, unsigned MaxRays);
32 evalue* barvinok_enumerate_e_with_options(Polyhedron *P,
33 unsigned exist, unsigned nparam, struct barvinok_options *options);
34 evalue *barvinok_enumerate_isl(Polyhedron *P,
35 unsigned exist, unsigned nparam, struct barvinok_options *options);
36 evalue *barvinok_enumerate_pip(Polyhedron *P,
37 unsigned exist, unsigned nparam, unsigned MaxRays);
38 evalue *barvinok_enumerate_pip_with_options(Polyhedron *P,
39 unsigned exist, unsigned nparam, struct barvinok_options *options);
40 evalue *barvinok_enumerate_scarf(Polyhedron *P,
41 unsigned exist, unsigned nparam,
42 struct barvinok_options *options);
43 evalue* barvinok_enumerate_union(Polyhedron *D, Polyhedron* C, unsigned MaxRays);
45 evalue *barvinok_summate(evalue *e, int nvar, struct barvinok_options *options);
47 #if defined(__cplusplus)
49 #endif
51 #if defined(__cplusplus)
53 #include <barvinok/genfun.h>
55 void zz2value(const ZZ& z, Value& v);
56 gen_fun * barvinok_series(Polyhedron *P, Polyhedron* C, unsigned MaxRays);
57 gen_fun * barvinok_series_with_options(Polyhedron *P, Polyhedron* C,
58 barvinok_options *options);
59 gen_fun *barvinok_enumerate_series(Polyhedron *P, unsigned nparam,
60 barvinok_options *options);
61 gen_fun *barvinok_enumerate_scarf_series(Polyhedron *P,
62 unsigned exist, unsigned nparam,
63 barvinok_options *options);
64 gen_fun *barvinok_enumerate_e_series(Polyhedron *P,
65 unsigned exist, unsigned nparam, barvinok_options *options);
66 gen_fun* barvinok_enumerate_union_series(Polyhedron *D, Polyhedron* C,
67 unsigned MaxRays);
68 gen_fun* barvinok_enumerate_union_series_with_options(Polyhedron *D, Polyhedron* C,
69 barvinok_options *options);
71 #endif
73 #endif