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