Tobias Grosser | 72745c2 | 2017-02-17 05:11:16 +0000 | [diff] [blame] | 1 | #ifndef ISL_FACTORIZATION_H |
| 2 | #define ISL_FACTORIZATION_H |
| 3 | |
Tobias Grosser | 52a2523 | 2015-02-04 20:55:43 +0000 | [diff] [blame] | 4 | #include <isl/set.h> |
| 5 | #include <isl_morph.h> |
| 6 | |
| 7 | #if defined(__cplusplus) |
| 8 | extern "C" { |
| 9 | #endif |
| 10 | |
| 11 | /* Data for factorizing a particular basic set. |
| 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. |
| 16 | */ |
| 17 | struct isl_factorizer { |
| 18 | isl_morph *morph; |
| 19 | int n_group; |
| 20 | int *len; |
| 21 | }; |
| 22 | typedef struct isl_factorizer isl_factorizer; |
| 23 | |
| 24 | __isl_give isl_factorizer *isl_basic_set_factorizer( |
| 25 | __isl_keep isl_basic_set *bset); |
| 26 | |
| 27 | void isl_factorizer_free(__isl_take isl_factorizer *f); |
| 28 | void isl_factorizer_dump(__isl_take isl_factorizer *f); |
| 29 | |
| 30 | #if defined(__cplusplus) |
| 31 | } |
| 32 | #endif |
Tobias Grosser | 72745c2 | 2017-02-17 05:11:16 +0000 | [diff] [blame] | 33 | |
| 34 | #endif |