4 #include <isl/polynomial.h>
5 #include <barvinok/isl.h>
7 #include "size_options.h"
19 isl_pw_qpolynomial
*pwqp
;
20 isl_pw_qpolynomial_fold
*pwf
;
21 enumerator(int v
) : type(fixed
), v(v
) {}
22 enumerator(__isl_take isl_pw_qpolynomial
*pwqp
, pdg::PDG
*pdg
) :
23 type(qp
), pwqp(pwqp
), pdg(pdg
) {}
24 enumerator(__isl_take isl_pw_qpolynomial_fold
*pwf
, pdg::PDG
*pdg
) :
25 type(fold
), pwf(pwf
), pdg(pdg
) {}
26 operator pdg::enumerator
*() const;
27 /* evaluate the enumerator at the values stored in the parameters */
28 integer
*evaluate() const;
31 isl_pw_qpolynomial_free(pwqp
);
33 isl_pw_qpolynomial_fold_free(pwf
);
37 size::enumerator
*selfloop_size(pdg::PDG
*pdg
, __isl_take isl_map
*dep
,
38 size_options
*options
);
39 isl_pw_qpolynomial
*selfloop_tokens_in_fifo(__isl_take isl_map
*dep
,
40 __isl_take isl_set
*ref
);