1 #ifndef ISL_FACTORIZATION_H
2 #define ISL_FACTORIZATION_H
7 #if defined(__cplusplus)
11 /* Data for factorizing the basic set "bset".
12 * After applying "morph" to the basic set, there are "n_group"
13 * groups of consecutive set variables, each of length "len[i]",
14 * with 0 <= i < n_group.
15 * If no factorization is possible, then "n_group" is set to 0.
17 struct isl_factorizer
{
23 typedef struct isl_factorizer isl_factorizer
;
25 __isl_give isl_factorizer
*isl_basic_set_factorizer(
26 __isl_keep isl_basic_set
*bset
);
28 isl_ctx
*isl_factorizer_get_ctx(__isl_keep isl_factorizer
*f
);
30 __isl_null isl_factorizer
*isl_factorizer_free(__isl_take isl_factorizer
*f
);
31 void isl_factorizer_dump(__isl_take isl_factorizer
*f
);
33 __isl_give isl_bool
isl_factorizer_every_factor_basic_set(
34 __isl_keep isl_factorizer
*f
,
35 isl_bool (*test
)(__isl_keep isl_basic_set
*bset
, void *user
),
38 #if defined(__cplusplus)