1 #ifndef SKEWED_GENFUN_H
2 #define SKEWED_GENFUN_H
5 #include <barvinok/barvinok.h>
7 struct skewed_gen_fun
{
9 /* maps original space to space in which gf is defined */
11 /* equalities in the original space that need to be satisfied for
15 /* divisibilities in the original space that need to be satisfied for
20 skewed_gen_fun(gen_fun
*gf
, Matrix
*T
= NULL
, Matrix
*eq
= NULL
,
22 gf(gf
), T(T
), eq(eq
), div(div
) {}
33 void print(std::ostream
& os
, unsigned int nparam
,
34 const char **param_name
) const;
35 operator evalue
*() const {
36 assert(T
== NULL
&& eq
== NULL
); /* other cases not supported for now */
39 void coefficient(Value
* params
, Value
* c
, barvinok_options
*options
) const;