allow codegen on sets
[barvinok.git] / barvinok / barvinok.h
blobad6ce473b8cedef6a31f4fe1b0570e5b2fefedd6
1 #ifndef BARVINOK_H
2 #define BARVINOK_H
4 #include <isl_polynomial.h>
5 #include <isl_union_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_union_pw_qpolynomial *isl_union_set_card(
15 __isl_take isl_union_set *uset);
16 __isl_give isl_union_pw_qpolynomial *isl_union_map_card(
17 __isl_take isl_union_map *umap);
18 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_sum(
19 __isl_take isl_pw_qpolynomial *pwqp);
20 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sum(
21 __isl_take isl_union_pw_qpolynomial *upwqp);
22 __isl_give isl_pw_qpolynomial *isl_map_apply_pw_qpolynomial(
23 __isl_take isl_map *map, __isl_take isl_pw_qpolynomial *pwqp);
24 __isl_give isl_union_pw_qpolynomial *isl_union_map_apply_union_pw_qpolynomial(
25 __isl_take isl_union_map *umap,
26 __isl_take isl_union_pw_qpolynomial *upwqp);
28 #include <barvinok/options.h>
30 void barvinok_decompose(Polyhedron *C, Polyhedron **ppos, Polyhedron **pneg);
31 void barvinok_count(Polyhedron *P, Value* result, unsigned NbMaxCons);
32 void barvinok_count_with_options(Polyhedron *P, Value* result,
33 struct barvinok_options *options);
34 Enumeration* barvinok_enumerate(Polyhedron *P, Polyhedron* C, unsigned MaxRays);
35 evalue* barvinok_enumerate_ev(Polyhedron *P, Polyhedron* C, unsigned MaxRays);
36 evalue* barvinok_enumerate_with_options(Polyhedron *P, Polyhedron* C,
37 struct barvinok_options *options);
38 evalue *Param_Polyhedron_Enumerate(Param_Polyhedron *PP, Polyhedron *P,
39 Polyhedron *C,
40 struct barvinok_options *options);
41 evalue* barvinok_enumerate_e(Polyhedron *P,
42 unsigned exist, unsigned nparam, unsigned MaxRays);
43 evalue* barvinok_enumerate_e_with_options(Polyhedron *P,
44 unsigned exist, unsigned nparam, struct barvinok_options *options);
45 evalue *barvinok_enumerate_isl(Polyhedron *P,
46 unsigned exist, unsigned nparam, struct barvinok_options *options);
47 evalue *barvinok_enumerate_scarf(Polyhedron *P,
48 unsigned exist, unsigned nparam,
49 struct barvinok_options *options);
50 evalue* barvinok_enumerate_union(Polyhedron *D, Polyhedron* C, unsigned MaxRays);
52 evalue *barvinok_summate(evalue *e, int nvar, struct barvinok_options *options);
54 #if defined(__cplusplus)
56 #endif
58 #if defined(__cplusplus)
60 #include <barvinok/genfun.h>
62 void zz2value(const ZZ& z, Value& v);
63 gen_fun * barvinok_series(Polyhedron *P, Polyhedron* C, unsigned MaxRays);
64 gen_fun * barvinok_series_with_options(Polyhedron *P, Polyhedron* C,
65 barvinok_options *options);
66 gen_fun *barvinok_enumerate_series(Polyhedron *P, unsigned nparam,
67 barvinok_options *options);
68 gen_fun *barvinok_enumerate_scarf_series(Polyhedron *P,
69 unsigned exist, unsigned nparam,
70 barvinok_options *options);
71 gen_fun *barvinok_enumerate_e_series(Polyhedron *P,
72 unsigned exist, unsigned nparam, barvinok_options *options);
73 gen_fun* barvinok_enumerate_union_series(Polyhedron *D, Polyhedron* C,
74 unsigned MaxRays);
75 gen_fun* barvinok_enumerate_union_series_with_options(Polyhedron *D, Polyhedron* C,
76 barvinok_options *options);
78 #endif
80 #endif