X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fisl%2Fpolynomial.h;h=2b2ac4c68a1c8451ffadf22963d708813ad0db6f;hb=9e4b65d0a1f40138fb0c98ae3e597e6fa1330075;hp=ed8cd39183971df79b5b60e73a40f9ad98d17e43;hpb=b6f4dc516a5f5f3d83132a3dd77e6d574768af89;p=platform%2Fupstream%2Fisl.git diff --git a/include/isl/polynomial.h b/include/isl/polynomial.h index ed8cd39..2b2ac4c 100644 --- a/include/isl/polynomial.h +++ b/include/isl/polynomial.h @@ -5,10 +5,11 @@ #include #include #include -#include +#include #include #include #include +#include #if defined(__cplusplus) extern "C" { @@ -43,7 +44,7 @@ __isl_give isl_qpolynomial *isl_qpolynomial_var(__isl_take isl_dim *dim, __isl_give isl_qpolynomial *isl_qpolynomial_copy(__isl_keep isl_qpolynomial *qp); void isl_qpolynomial_free(__isl_take isl_qpolynomial *qp); -int isl_qpolynomial_is_equal(__isl_keep isl_qpolynomial *qp1, +int isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1, __isl_keep isl_qpolynomial *qp2); int isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp); int isl_qpolynomial_is_nan(__isl_keep isl_qpolynomial *qp); @@ -65,6 +66,10 @@ __isl_give isl_qpolynomial *isl_qpolynomial_pow(__isl_take isl_qpolynomial *qp, unsigned power); __isl_give isl_qpolynomial *isl_qpolynomial_add_isl_int( __isl_take isl_qpolynomial *qp, isl_int v); +__isl_give isl_qpolynomial *isl_qpolynomial_mul_isl_int( + __isl_take isl_qpolynomial *qp, isl_int v); +__isl_give isl_qpolynomial *isl_qpolynomial_scale( + __isl_take isl_qpolynomial *qp, isl_int v); __isl_give isl_qpolynomial *isl_qpolynomial_insert_dims( __isl_take isl_qpolynomial *qp, enum isl_dim_type type, @@ -92,11 +97,15 @@ int isl_qpolynomial_as_polynomial_on_domain(__isl_keep isl_qpolynomial *qp, __isl_give isl_qpolynomial *isl_qpolynomial_homogenize( __isl_take isl_qpolynomial *poly); +__isl_give isl_qpolynomial *isl_qpolynomial_align_params( + __isl_take isl_qpolynomial *qp, __isl_take isl_dim *model); + struct isl_term; typedef struct isl_term isl_term; isl_ctx *isl_term_get_ctx(__isl_keep isl_term *term); +__isl_give isl_term *isl_term_copy(__isl_keep isl_term *term); void isl_term_free(__isl_take isl_term *term); unsigned isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type); @@ -112,14 +121,21 @@ int isl_qpolynomial_foreach_term(__isl_keep isl_qpolynomial *qp, __isl_give isl_qpolynomial *isl_qpolynomial_eval( __isl_take isl_qpolynomial *qp, __isl_take isl_point *pnt); +__isl_give isl_qpolynomial *isl_qpolynomial_gist( + __isl_take isl_qpolynomial *qp, __isl_take isl_set *context); + __isl_give isl_qpolynomial *isl_qpolynomial_from_constraint( __isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos); __isl_give isl_qpolynomial *isl_qpolynomial_from_term(__isl_take isl_term *term); +__isl_give isl_qpolynomial *isl_qpolynomial_from_aff(__isl_take isl_aff *aff); +__isl_give isl_basic_map *isl_basic_map_from_qpolynomial( + __isl_take isl_qpolynomial *qp); __isl_give isl_printer *isl_printer_print_qpolynomial( __isl_take isl_printer *p, __isl_keep isl_qpolynomial *qp); void isl_qpolynomial_print(__isl_keep isl_qpolynomial *qp, FILE *out, unsigned output_format); +void isl_qpolynomial_dump(__isl_keep isl_qpolynomial *qp); struct isl_pw_qpolynomial; typedef struct isl_pw_qpolynomial isl_pw_qpolynomial; @@ -129,9 +145,11 @@ isl_ctx *isl_pw_qpolynomial_get_ctx(__isl_keep isl_pw_qpolynomial *pwqp); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_zero(__isl_take isl_dim *dim); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp); +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial( + __isl_take isl_qpolynomial *qp); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_copy( __isl_keep isl_pw_qpolynomial *pwqp); -void isl_pw_qpolynomial_free(__isl_take isl_pw_qpolynomial *pwqp); +void *isl_pw_qpolynomial_free(__isl_take isl_pw_qpolynomial *pwqp); int isl_pw_qpolynomial_is_zero(__isl_keep isl_pw_qpolynomial *pwqp); @@ -175,6 +193,10 @@ __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_neg( __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul( __isl_take isl_pw_qpolynomial *pwqp1, __isl_take isl_pw_qpolynomial *pwqp2); +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul_isl_int( + __isl_take isl_pw_qpolynomial *pwqp, isl_int v); +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_pow( + __isl_take isl_pw_qpolynomial *pwqp, unsigned exponent); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_insert_dims( __isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type, @@ -206,8 +228,13 @@ int isl_pw_qpolynomial_foreach_lifted_piece(__isl_keep isl_pw_qpolynomial *pwqp, int (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp, void *user), void *user); +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_pw_aff( + __isl_take isl_pw_aff *pwaff); + __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_str(isl_ctx *ctx, const char *str); +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_file(isl_ctx *ctx, + FILE *input); __isl_give isl_printer *isl_printer_print_pw_qpolynomial( __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial *pwqp); void isl_pw_qpolynomial_print(__isl_keep isl_pw_qpolynomial *pwqp, FILE *out, @@ -250,13 +277,21 @@ __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_reset_dim( __isl_take isl_qpolynomial_fold *fold, __isl_take isl_dim *dim); int isl_qpolynomial_fold_is_empty(__isl_keep isl_qpolynomial_fold *fold); -int isl_qpolynomial_fold_is_equal(__isl_keep isl_qpolynomial_fold *fold1, +int isl_qpolynomial_fold_plain_is_equal(__isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2); +__isl_give isl_dim *isl_qpolynomial_fold_get_dim( + __isl_keep isl_qpolynomial_fold *fold); + __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_fold( __isl_take isl_qpolynomial_fold *fold1, __isl_take isl_qpolynomial_fold *fold2); +__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_mul_isl_int( + __isl_take isl_qpolynomial_fold *fold, isl_int v); +__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale( + __isl_take isl_qpolynomial_fold *fold, isl_int v); + __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_move_dims( __isl_take isl_qpolynomial_fold *fold, enum isl_dim_type dst_type, unsigned dst_pos, @@ -293,7 +328,7 @@ __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_alloc( __isl_take isl_set *set, __isl_take isl_qpolynomial_fold *fold); __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_copy( __isl_keep isl_pw_qpolynomial_fold *pwf); -void isl_pw_qpolynomial_fold_free(__isl_take isl_pw_qpolynomial_fold *pwf); +void *isl_pw_qpolynomial_fold_free(__isl_take isl_pw_qpolynomial_fold *pwf); int isl_pw_qpolynomial_fold_is_zero(__isl_keep isl_pw_qpolynomial_fold *pwf); @@ -330,6 +365,8 @@ __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fold( __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add_disjoint( __isl_take isl_pw_qpolynomial_fold *pwf1, __isl_take isl_pw_qpolynomial_fold *pwf2); +__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_mul_isl_int( + __isl_take isl_pw_qpolynomial_fold *pwf, isl_int v); __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_dims( __isl_take isl_pw_qpolynomial_fold *pwf, @@ -375,6 +412,9 @@ __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_bound( __isl_take isl_pw_qpolynomial *pwqp, enum isl_fold type, int *tight); __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_bound( __isl_take isl_pw_qpolynomial_fold *pwf, int *tight); +__isl_give isl_pw_qpolynomial_fold *isl_set_apply_pw_qpolynomial_fold( + __isl_take isl_set *set, __isl_take isl_pw_qpolynomial_fold *pwf, + int *tight); __isl_give isl_pw_qpolynomial_fold *isl_map_apply_pw_qpolynomial_fold( __isl_take isl_map *map, __isl_take isl_pw_qpolynomial_fold *pwf, int *tight); @@ -407,6 +447,8 @@ __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sub( __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul( __isl_take isl_union_pw_qpolynomial *upwqp1, __isl_take isl_union_pw_qpolynomial *upwqp2); +__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul_isl_int( + __isl_take isl_union_pw_qpolynomial *upwqp, isl_int v); __isl_give isl_union_set *isl_union_pw_qpolynomial_domain( __isl_take isl_union_pw_qpolynomial *upwqp); @@ -462,6 +504,8 @@ __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold( __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial( __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_union_pw_qpolynomial *upwqp); +__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_mul_isl_int( + __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_int v); __isl_give isl_union_set *isl_union_pw_qpolynomial_fold_domain( __isl_take isl_union_pw_qpolynomial_fold *upwf); @@ -502,6 +546,9 @@ __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial_fold( __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_bound( __isl_take isl_union_pw_qpolynomial *upwqp, enum isl_fold type, int *tight); +__isl_give isl_union_pw_qpolynomial_fold *isl_union_set_apply_union_pw_qpolynomial_fold( + __isl_take isl_union_set *uset, + __isl_take isl_union_pw_qpolynomial_fold *upwf, int *tight); __isl_give isl_union_pw_qpolynomial_fold *isl_union_map_apply_union_pw_qpolynomial_fold( __isl_take isl_union_map *umap, __isl_take isl_union_pw_qpolynomial_fold *upwf, int *tight);