iscc: add intersect_domain operations
[barvinok.git] / barvinok / bernstein.h
blobe7d389edabe1f0bb4587c418bcc1bd65cda2986c
1 #include <barvinok/evalue.h>
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
7 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_upper_bound(
8 __isl_take isl_pw_qpolynomial *pwqp);
10 #if defined(__cplusplus)
13 #include <ginac/ginac.h>
14 #include <bernstein/piecewise_lst.h>
16 struct barvinok_options;
18 namespace barvinok {
20 bernstein::piecewise_lst *evalue_bernstein_coefficients(
21 bernstein::piecewise_lst *pl_all, evalue *e,
22 Polyhedron *ctx, const GiNaC::exvector& params);
23 bernstein::piecewise_lst *evalue_bernstein_coefficients(
24 bernstein::piecewise_lst *pl_all, evalue *e,
25 Polyhedron *ctx, const GiNaC::exvector& params,
26 barvinok_options *options);
27 GiNaC::ex evalue2ex(evalue *e, const GiNaC::exvector& vars);
28 GiNaC::ex evalue2ex(const evalue *e, const GiNaC::exvector& vars,
29 GiNaC::exvector& floorvar, Matrix **C);
31 __isl_give isl_qpolynomial *isl_qpolynomial_from_ginac(__isl_take isl_dim *dim,
32 const GiNaC::ex &ex, const GiNaC::exvector &params);
33 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_from_ginac(
34 __isl_take isl_dim *dim, enum isl_fold type, const GiNaC::lst &lst,
35 const GiNaC::exvector &params);
36 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_ginac(
37 __isl_take isl_dim *dim, bernstein::piecewise_lst *pl,
38 const GiNaC::exvector &params);
42 #endif