Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef ISL_POLYNOMIAL_H
  2. #define ISL_POLYNOMIAL_H
  3.  
  4. #include <isl/ctx.h>
  5. #include <isl/constraint.h>
  6. #include <isl/space_type.h>
  7. #include <isl/set_type.h>
  8. #include <isl/point.h>
  9. #include <isl/printer.h>
  10. #include <isl/union_set_type.h>
  11. #include <isl/aff_type.h>
  12. #include <isl/polynomial_type.h>
  13. #include <isl/val_type.h>
  14.  
  15. #if defined(__cplusplus)
  16. extern "C" {
  17. #endif
  18.  
  19. isl_ctx *isl_qpolynomial_get_ctx(__isl_keep isl_qpolynomial *qp);
  20. __isl_give isl_space *isl_qpolynomial_get_domain_space(
  21.         __isl_keep isl_qpolynomial *qp);
  22. __isl_give isl_space *isl_qpolynomial_get_space(__isl_keep isl_qpolynomial *qp);
  23. isl_size isl_qpolynomial_dim(__isl_keep isl_qpolynomial *qp,
  24.         enum isl_dim_type type);
  25. isl_bool isl_qpolynomial_involves_dims(__isl_keep isl_qpolynomial *qp,
  26.         enum isl_dim_type type, unsigned first, unsigned n);
  27.  
  28. __isl_give isl_val *isl_qpolynomial_get_constant_val(
  29.         __isl_keep isl_qpolynomial *qp);
  30.  
  31. __isl_give isl_qpolynomial *isl_qpolynomial_set_dim_name(
  32.         __isl_take isl_qpolynomial *qp,
  33.         enum isl_dim_type type, unsigned pos, const char *s);
  34.  
  35. __isl_give isl_qpolynomial *isl_qpolynomial_zero_on_domain(
  36.         __isl_take isl_space *domain);
  37. __isl_give isl_qpolynomial *isl_qpolynomial_one_on_domain(
  38.         __isl_take isl_space *domain);
  39. __isl_give isl_qpolynomial *isl_qpolynomial_infty_on_domain(
  40.         __isl_take isl_space *domain);
  41. __isl_give isl_qpolynomial *isl_qpolynomial_neginfty_on_domain(
  42.         __isl_take isl_space *domain);
  43. __isl_give isl_qpolynomial *isl_qpolynomial_nan_on_domain(
  44.         __isl_take isl_space *domain);
  45. __isl_give isl_qpolynomial *isl_qpolynomial_val_on_domain(
  46.         __isl_take isl_space *space, __isl_take isl_val *val);
  47. __isl_give isl_qpolynomial *isl_qpolynomial_var_on_domain(
  48.         __isl_take isl_space *domain,
  49.         enum isl_dim_type type, unsigned pos);
  50. __isl_give isl_qpolynomial *isl_qpolynomial_copy(__isl_keep isl_qpolynomial *qp);
  51. __isl_null isl_qpolynomial *isl_qpolynomial_free(
  52.         __isl_take isl_qpolynomial *qp);
  53.  
  54. isl_bool isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1,
  55.         __isl_keep isl_qpolynomial *qp2);
  56. isl_bool isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp);
  57. isl_bool isl_qpolynomial_is_nan(__isl_keep isl_qpolynomial *qp);
  58. isl_bool isl_qpolynomial_is_infty(__isl_keep isl_qpolynomial *qp);
  59. isl_bool isl_qpolynomial_is_neginfty(__isl_keep isl_qpolynomial *qp);
  60. int isl_qpolynomial_sgn(__isl_keep isl_qpolynomial *qp);
  61.  
  62. __isl_give isl_qpolynomial *isl_qpolynomial_neg(__isl_take isl_qpolynomial *qp);
  63. __isl_give isl_qpolynomial *isl_qpolynomial_add(__isl_take isl_qpolynomial *qp1,
  64.         __isl_take isl_qpolynomial *qp2);
  65. __isl_give isl_qpolynomial *isl_qpolynomial_sub(__isl_take isl_qpolynomial *qp1,
  66.         __isl_take isl_qpolynomial *qp2);
  67. __isl_give isl_qpolynomial *isl_qpolynomial_mul(__isl_take isl_qpolynomial *qp1,
  68.         __isl_take isl_qpolynomial *qp2);
  69. __isl_give isl_qpolynomial *isl_qpolynomial_pow(__isl_take isl_qpolynomial *qp,
  70.         unsigned power);
  71. __isl_give isl_qpolynomial *isl_qpolynomial_scale_val(
  72.         __isl_take isl_qpolynomial *qp, __isl_take isl_val *v);
  73. __isl_give isl_qpolynomial *isl_qpolynomial_scale_down_val(
  74.         __isl_take isl_qpolynomial *qp, __isl_take isl_val *v);
  75.  
  76. __isl_give isl_qpolynomial *isl_qpolynomial_insert_dims(
  77.         __isl_take isl_qpolynomial *qp, enum isl_dim_type type,
  78.         unsigned first, unsigned n);
  79. __isl_give isl_qpolynomial *isl_qpolynomial_add_dims(
  80.         __isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned n);
  81. __isl_give isl_qpolynomial *isl_qpolynomial_move_dims(
  82.         __isl_take isl_qpolynomial *qp,
  83.         enum isl_dim_type dst_type, unsigned dst_pos,
  84.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  85. __isl_give isl_qpolynomial *isl_qpolynomial_project_domain_on_params(
  86.         __isl_take isl_qpolynomial *qp);
  87. __isl_give isl_qpolynomial *isl_qpolynomial_drop_dims(
  88.         __isl_take isl_qpolynomial *qp,
  89.         enum isl_dim_type type, unsigned first, unsigned n);
  90.  
  91. __isl_give isl_qpolynomial *isl_qpolynomial_substitute(
  92.         __isl_take isl_qpolynomial *qp,
  93.         enum isl_dim_type type, unsigned first, unsigned n,
  94.         __isl_keep isl_qpolynomial **subs);
  95.  
  96. isl_stat isl_qpolynomial_as_polynomial_on_domain(__isl_keep isl_qpolynomial *qp,
  97.         __isl_keep isl_basic_set *bset,
  98.         isl_stat (*fn)(__isl_take isl_basic_set *bset,
  99.                   __isl_take isl_qpolynomial *poly, void *user), void *user);
  100.  
  101. __isl_give isl_qpolynomial *isl_qpolynomial_homogenize(
  102.         __isl_take isl_qpolynomial *poly);
  103.  
  104. __isl_give isl_qpolynomial *isl_qpolynomial_align_params(
  105.         __isl_take isl_qpolynomial *qp, __isl_take isl_space *model);
  106.  
  107. isl_ctx *isl_term_get_ctx(__isl_keep isl_term *term);
  108.  
  109. __isl_give isl_term *isl_term_copy(__isl_keep isl_term *term);
  110. __isl_null isl_term *isl_term_free(__isl_take isl_term *term);
  111.  
  112. isl_size isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type);
  113. __isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term);
  114. isl_size isl_term_get_exp(__isl_keep isl_term *term,
  115.         enum isl_dim_type type, unsigned pos);
  116. __isl_give isl_aff *isl_term_get_div(__isl_keep isl_term *term, unsigned pos);
  117.  
  118. isl_stat isl_qpolynomial_foreach_term(__isl_keep isl_qpolynomial *qp,
  119.         isl_stat (*fn)(__isl_take isl_term *term, void *user), void *user);
  120.  
  121. __isl_give isl_val *isl_qpolynomial_eval(__isl_take isl_qpolynomial *qp,
  122.         __isl_take isl_point *pnt);
  123.  
  124. __isl_give isl_qpolynomial *isl_qpolynomial_gist_params(
  125.         __isl_take isl_qpolynomial *qp, __isl_take isl_set *context);
  126. __isl_give isl_qpolynomial *isl_qpolynomial_gist(
  127.         __isl_take isl_qpolynomial *qp, __isl_take isl_set *context);
  128.  
  129. __isl_give isl_qpolynomial *isl_qpolynomial_from_constraint(
  130.         __isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos);
  131. __isl_give isl_qpolynomial *isl_qpolynomial_from_term(__isl_take isl_term *term);
  132. __isl_give isl_qpolynomial *isl_qpolynomial_from_aff(__isl_take isl_aff *aff);
  133. __isl_give isl_basic_map *isl_basic_map_from_qpolynomial(
  134.         __isl_take isl_qpolynomial *qp);
  135.  
  136. __isl_give isl_printer *isl_printer_print_qpolynomial(
  137.         __isl_take isl_printer *p, __isl_keep isl_qpolynomial *qp);
  138. void isl_qpolynomial_print(__isl_keep isl_qpolynomial *qp, FILE *out,
  139.         unsigned output_format);
  140. void isl_qpolynomial_dump(__isl_keep isl_qpolynomial *qp);
  141.  
  142. isl_ctx *isl_pw_qpolynomial_get_ctx(__isl_keep isl_pw_qpolynomial *pwqp);
  143.  
  144. isl_bool isl_pw_qpolynomial_involves_nan(__isl_keep isl_pw_qpolynomial *pwqp);
  145. isl_bool isl_pw_qpolynomial_plain_is_equal(__isl_keep isl_pw_qpolynomial *pwqp1,
  146.         __isl_keep isl_pw_qpolynomial *pwqp2);
  147.  
  148. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_zero(
  149.         __isl_take isl_space *space);
  150. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc(__isl_take isl_set *set,
  151.         __isl_take isl_qpolynomial *qp);
  152. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial(
  153.         __isl_take isl_qpolynomial *qp);
  154. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_copy(
  155.         __isl_keep isl_pw_qpolynomial *pwqp);
  156. __isl_null isl_pw_qpolynomial *isl_pw_qpolynomial_free(
  157.         __isl_take isl_pw_qpolynomial *pwqp);
  158.  
  159. isl_bool isl_pw_qpolynomial_is_zero(__isl_keep isl_pw_qpolynomial *pwqp);
  160.  
  161. __isl_give isl_space *isl_pw_qpolynomial_get_domain_space(
  162.         __isl_keep isl_pw_qpolynomial *pwqp);
  163. __isl_give isl_space *isl_pw_qpolynomial_get_space(
  164.         __isl_keep isl_pw_qpolynomial *pwqp);
  165. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_domain_space(
  166.         __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_space *space);
  167. isl_size isl_pw_qpolynomial_dim(__isl_keep isl_pw_qpolynomial *pwqp,
  168.         enum isl_dim_type type);
  169. isl_bool isl_pw_qpolynomial_involves_param_id(
  170.         __isl_keep isl_pw_qpolynomial *pwqp, __isl_keep isl_id *id);
  171. isl_bool isl_pw_qpolynomial_involves_dims(__isl_keep isl_pw_qpolynomial *pwqp,
  172.         enum isl_dim_type type, unsigned first, unsigned n);
  173. isl_bool isl_pw_qpolynomial_has_equal_space(
  174.         __isl_keep isl_pw_qpolynomial *pwqp1,
  175.         __isl_keep isl_pw_qpolynomial *pwqp2);
  176.  
  177. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_set_dim_name(
  178.         __isl_take isl_pw_qpolynomial *pwqp,
  179.         enum isl_dim_type type, unsigned pos, const char *s);
  180.  
  181. int isl_pw_qpolynomial_find_dim_by_name(__isl_keep isl_pw_qpolynomial *pwqp,
  182.         enum isl_dim_type type, const char *name);
  183.  
  184. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_user(
  185.         __isl_take isl_pw_qpolynomial *pwqp);
  186.  
  187. __isl_export
  188. __isl_give isl_set *isl_pw_qpolynomial_domain(__isl_take isl_pw_qpolynomial *pwqp);
  189. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_domain(
  190.         __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
  191. __isl_give isl_pw_qpolynomial *
  192. isl_pw_qpolynomial_intersect_domain_wrapped_domain(
  193.         __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
  194. __isl_give isl_pw_qpolynomial *
  195. isl_pw_qpolynomial_intersect_domain_wrapped_range(
  196.         __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
  197. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_params(
  198.         __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
  199. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_subtract_domain(
  200.         __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
  201.  
  202. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_project_domain_on_params(
  203.         __isl_take isl_pw_qpolynomial *pwqp);
  204. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_range(
  205.         __isl_take isl_pw_qpolynomial *pwqp);
  206. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_dims(
  207.         __isl_take isl_pw_qpolynomial *pwqp,
  208.         enum isl_dim_type type, unsigned first, unsigned n);
  209. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_dims(
  210.         __isl_take isl_pw_qpolynomial *pwqp,
  211.         enum isl_dim_type type, unsigned first, unsigned n);
  212.  
  213. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_unused_params(
  214.         __isl_take isl_pw_qpolynomial *pwqp);
  215.  
  216. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add(
  217.         __isl_take isl_pw_qpolynomial *pwqp1,
  218.         __isl_take isl_pw_qpolynomial *pwqp2);
  219. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_sub(
  220.         __isl_take isl_pw_qpolynomial *pwqp1,
  221.         __isl_take isl_pw_qpolynomial *pwqp2);
  222. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_disjoint(
  223.         __isl_take isl_pw_qpolynomial *pwqp1,
  224.         __isl_take isl_pw_qpolynomial *pwqp2);
  225. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_neg(
  226.         __isl_take isl_pw_qpolynomial *pwqp);
  227. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul(
  228.         __isl_take isl_pw_qpolynomial *pwqp1,
  229.         __isl_take isl_pw_qpolynomial *pwqp2);
  230. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_val(
  231.         __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v);
  232. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_down_val(
  233.         __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v);
  234. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_pow(
  235.         __isl_take isl_pw_qpolynomial *pwqp, unsigned exponent);
  236.  
  237. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_insert_dims(
  238.         __isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type,
  239.         unsigned first, unsigned n);
  240. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_dims(
  241.         __isl_take isl_pw_qpolynomial *pwqp,
  242.         enum isl_dim_type type, unsigned n);
  243. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_move_dims(
  244.         __isl_take isl_pw_qpolynomial *pwqp,
  245.         enum isl_dim_type dst_type, unsigned dst_pos,
  246.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  247.  
  248. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_fix_val(
  249.         __isl_take isl_pw_qpolynomial *pwqp,
  250.         enum isl_dim_type type, unsigned n, __isl_take isl_val *v);
  251.  
  252. __isl_export
  253. __isl_give isl_val *isl_pw_qpolynomial_eval(
  254.         __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_point *pnt);
  255.  
  256. __isl_give isl_val *isl_pw_qpolynomial_max(__isl_take isl_pw_qpolynomial *pwqp);
  257. __isl_give isl_val *isl_pw_qpolynomial_min(__isl_take isl_pw_qpolynomial *pwqp);
  258.  
  259. isl_size isl_pw_qpolynomial_n_piece(__isl_keep isl_pw_qpolynomial *pwqp);
  260. isl_stat isl_pw_qpolynomial_foreach_piece(__isl_keep isl_pw_qpolynomial *pwqp,
  261.         isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp,
  262.                     void *user), void *user);
  263. isl_bool isl_pw_qpolynomial_every_piece(__isl_keep isl_pw_qpolynomial *pwqp,
  264.         isl_bool (*test)(__isl_keep isl_set *set,
  265.                 __isl_keep isl_qpolynomial *qp, void *user), void *user);
  266. isl_stat isl_pw_qpolynomial_foreach_lifted_piece(
  267.         __isl_keep isl_pw_qpolynomial *pwqp,
  268.         isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp,
  269.                     void *user), void *user);
  270. isl_bool isl_pw_qpolynomial_isa_qpolynomial(
  271.         __isl_keep isl_pw_qpolynomial *pwqp);
  272. __isl_give isl_qpolynomial *isl_pw_qpolynomial_as_qpolynomial(
  273.         __isl_take isl_pw_qpolynomial *pwqp);
  274.  
  275. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_pw_aff(
  276.         __isl_take isl_pw_aff *pwaff);
  277.  
  278. __isl_constructor
  279. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_str(isl_ctx *ctx,
  280.                 const char *str);
  281. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_file(isl_ctx *ctx,
  282.                 FILE *input);
  283. __isl_give char *isl_pw_qpolynomial_to_str(__isl_keep isl_pw_qpolynomial *pwqp);
  284. __isl_give isl_printer *isl_printer_print_pw_qpolynomial(
  285.         __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial *pwqp);
  286. void isl_pw_qpolynomial_print(__isl_keep isl_pw_qpolynomial *pwqp, FILE *out,
  287.         unsigned output_format);
  288. void isl_pw_qpolynomial_dump(__isl_keep isl_pw_qpolynomial *pwqp);
  289.  
  290. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_coalesce(
  291.         __isl_take isl_pw_qpolynomial *pwqp);
  292. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist(
  293.         __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
  294. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist_params(
  295.         __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
  296.  
  297. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_periods(
  298.         __isl_take isl_pw_qpolynomial *pwqp, int max_periods);
  299.  
  300. __isl_give isl_pw_qpolynomial *isl_basic_set_multiplicative_call(
  301.         __isl_take isl_basic_set *bset,
  302.         __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset));
  303.  
  304. isl_ctx *isl_qpolynomial_fold_get_ctx(__isl_keep isl_qpolynomial_fold *fold);
  305. enum isl_fold isl_qpolynomial_fold_get_type(__isl_keep isl_qpolynomial_fold *fold);
  306.  
  307. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_empty(enum isl_fold type,
  308.         __isl_take isl_space *space);
  309. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_alloc(
  310.         enum isl_fold type, __isl_take isl_qpolynomial *qp);
  311. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_copy(
  312.         __isl_keep isl_qpolynomial_fold *fold);
  313. __isl_null isl_qpolynomial_fold *isl_qpolynomial_fold_free(
  314.         __isl_take isl_qpolynomial_fold *fold);
  315.  
  316. isl_bool isl_qpolynomial_fold_is_empty(__isl_keep isl_qpolynomial_fold *fold);
  317. isl_bool isl_qpolynomial_fold_is_nan(__isl_keep isl_qpolynomial_fold *fold);
  318. isl_bool isl_qpolynomial_fold_plain_is_equal(
  319.         __isl_keep isl_qpolynomial_fold *fold1,
  320.         __isl_keep isl_qpolynomial_fold *fold2);
  321.  
  322. __isl_give isl_space *isl_qpolynomial_fold_get_domain_space(
  323.         __isl_keep isl_qpolynomial_fold *fold);
  324. __isl_give isl_space *isl_qpolynomial_fold_get_space(
  325.         __isl_keep isl_qpolynomial_fold *fold);
  326.  
  327. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_fold(
  328.         __isl_take isl_qpolynomial_fold *fold1,
  329.         __isl_take isl_qpolynomial_fold *fold2);
  330.  
  331. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_val(
  332.         __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v);
  333. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_down_val(
  334.         __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v);
  335.  
  336. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_move_dims(
  337.         __isl_take isl_qpolynomial_fold *fold,
  338.         enum isl_dim_type dst_type, unsigned dst_pos,
  339.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  340.  
  341. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_substitute(
  342.         __isl_take isl_qpolynomial_fold *fold,
  343.         enum isl_dim_type type, unsigned first, unsigned n,
  344.         __isl_keep isl_qpolynomial **subs);
  345.  
  346. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fix_val(
  347.         __isl_take isl_pw_qpolynomial_fold *pwf,
  348.         enum isl_dim_type type, unsigned n, __isl_take isl_val *v);
  349.  
  350. __isl_give isl_val *isl_qpolynomial_fold_eval(
  351.         __isl_take isl_qpolynomial_fold *fold, __isl_take isl_point *pnt);
  352.  
  353. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist_params(
  354.         __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
  355. __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist(
  356.         __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
  357.  
  358. isl_stat isl_qpolynomial_fold_foreach_qpolynomial(
  359.         __isl_keep isl_qpolynomial_fold *fold,
  360.         isl_stat (*fn)(__isl_take isl_qpolynomial *qp, void *user), void *user);
  361.  
  362. __isl_give isl_printer *isl_printer_print_qpolynomial_fold(
  363.         __isl_take isl_printer *p, __isl_keep isl_qpolynomial_fold *fold);
  364. void isl_qpolynomial_fold_print(__isl_keep isl_qpolynomial_fold *fold, FILE *out,
  365.         unsigned output_format);
  366. void isl_qpolynomial_fold_dump(__isl_keep isl_qpolynomial_fold *fold);
  367.  
  368. isl_ctx *isl_pw_qpolynomial_fold_get_ctx(__isl_keep isl_pw_qpolynomial_fold *pwf);
  369. enum isl_fold isl_pw_qpolynomial_fold_get_type(
  370.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  371.  
  372. isl_bool isl_pw_qpolynomial_fold_involves_nan(
  373.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  374. isl_bool isl_pw_qpolynomial_fold_plain_is_equal(
  375.         __isl_keep isl_pw_qpolynomial_fold *pwf1,
  376.         __isl_keep isl_pw_qpolynomial_fold *pwf2);
  377.  
  378. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_pw_qpolynomial(
  379.         enum isl_fold type, __isl_take isl_pw_qpolynomial *pwqp);
  380.  
  381. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_alloc(
  382.         enum isl_fold type,
  383.         __isl_take isl_set *set, __isl_take isl_qpolynomial_fold *fold);
  384. __isl_give isl_pw_qpolynomial_fold *
  385. isl_pw_qpolynomial_fold_from_qpolynomial_fold(
  386.         __isl_take isl_qpolynomial_fold *fold);
  387. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_copy(
  388.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  389. __isl_null isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_free(
  390.         __isl_take isl_pw_qpolynomial_fold *pwf);
  391.  
  392. isl_bool isl_pw_qpolynomial_fold_is_zero(
  393.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  394.  
  395. __isl_give isl_space *isl_pw_qpolynomial_fold_get_domain_space(
  396.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  397. __isl_give isl_space *isl_pw_qpolynomial_fold_get_space(
  398.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  399. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_space(
  400.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_space *space);
  401. isl_size isl_pw_qpolynomial_fold_dim(__isl_keep isl_pw_qpolynomial_fold *pwf,
  402.         enum isl_dim_type type);
  403. isl_bool isl_pw_qpolynomial_fold_involves_param_id(
  404.         __isl_keep isl_pw_qpolynomial_fold *pwf, __isl_keep isl_id *id);
  405. isl_bool isl_pw_qpolynomial_fold_has_equal_space(
  406.         __isl_keep isl_pw_qpolynomial_fold *pwf1,
  407.         __isl_keep isl_pw_qpolynomial_fold *pwf2);
  408.  
  409. size_t isl_pw_qpolynomial_fold_size(__isl_keep isl_pw_qpolynomial_fold *pwf);
  410.  
  411. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_zero(
  412.         __isl_take isl_space *space, enum isl_fold type);
  413.  
  414. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_set_dim_name(
  415.         __isl_take isl_pw_qpolynomial_fold *pwf,
  416.         enum isl_dim_type type, unsigned pos, const char *s);
  417.  
  418. int isl_pw_qpolynomial_fold_find_dim_by_name(
  419.         __isl_keep isl_pw_qpolynomial_fold *pwf,
  420.         enum isl_dim_type type, const char *name);
  421.  
  422. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_user(
  423.         __isl_take isl_pw_qpolynomial_fold *pwf);
  424.  
  425. __isl_give isl_set *isl_pw_qpolynomial_fold_domain(
  426.         __isl_take isl_pw_qpolynomial_fold *pwf);
  427. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_domain(
  428.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
  429. __isl_give isl_pw_qpolynomial_fold *
  430. isl_pw_qpolynomial_fold_intersect_domain_wrapped_domain(
  431.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
  432. __isl_give isl_pw_qpolynomial_fold *
  433. isl_pw_qpolynomial_fold_intersect_domain_wrapped_range(
  434.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
  435. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_params(
  436.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
  437. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_subtract_domain(
  438.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
  439.  
  440. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add(
  441.         __isl_take isl_pw_qpolynomial_fold *pwf1,
  442.         __isl_take isl_pw_qpolynomial_fold *pwf2);
  443. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fold(
  444.         __isl_take isl_pw_qpolynomial_fold *pwf1,
  445.         __isl_take isl_pw_qpolynomial_fold *pwf2);
  446. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add_disjoint(
  447.         __isl_take isl_pw_qpolynomial_fold *pwf1,
  448.         __isl_take isl_pw_qpolynomial_fold *pwf2);
  449. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_val(
  450.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v);
  451. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_down_val(
  452.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v);
  453.  
  454. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_project_domain_on_params(
  455.         __isl_take isl_pw_qpolynomial_fold *pwf);
  456. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_range(
  457.         __isl_take isl_pw_qpolynomial_fold *pwf);
  458. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_dims(
  459.         __isl_take isl_pw_qpolynomial_fold *pwf,
  460.         enum isl_dim_type type, unsigned first, unsigned n);
  461. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_move_dims(
  462.         __isl_take isl_pw_qpolynomial_fold *pwf,
  463.         enum isl_dim_type dst_type, unsigned dst_pos,
  464.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  465.  
  466. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_unused_params(
  467.         __isl_take isl_pw_qpolynomial_fold *pwf);
  468.  
  469. __isl_give isl_val *isl_pw_qpolynomial_fold_eval(
  470.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_point *pnt);
  471.  
  472. isl_size isl_pw_qpolynomial_fold_n_piece(
  473.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  474. isl_stat isl_pw_qpolynomial_fold_foreach_piece(
  475.         __isl_keep isl_pw_qpolynomial_fold *pwf,
  476.         isl_stat (*fn)(__isl_take isl_set *set,
  477.                 __isl_take isl_qpolynomial_fold *fold, void *user), void *user);
  478. isl_bool isl_pw_qpolynomial_fold_every_piece(
  479.         __isl_keep isl_pw_qpolynomial_fold *pwf,
  480.         isl_bool (*test)(__isl_keep isl_set *set,
  481.                 __isl_keep isl_qpolynomial_fold *fold, void *user), void *user);
  482. isl_stat isl_pw_qpolynomial_fold_foreach_lifted_piece(
  483.         __isl_keep isl_pw_qpolynomial_fold *pwf,
  484.         isl_stat (*fn)(__isl_take isl_set *set,
  485.                 __isl_take isl_qpolynomial_fold *fold, void *user), void *user);
  486. isl_bool isl_pw_qpolynomial_fold_isa_qpolynomial_fold(
  487.         __isl_keep isl_pw_qpolynomial_fold *pwf);
  488. __isl_give isl_qpolynomial_fold *isl_pw_qpolynomial_fold_as_qpolynomial_fold(
  489.         __isl_take isl_pw_qpolynomial_fold *pwf);
  490.  
  491. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_read_from_str(
  492.         isl_ctx *ctx, const char *str);
  493. __isl_give isl_printer *isl_printer_print_pw_qpolynomial_fold(
  494.         __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial_fold *pwf);
  495. void isl_pw_qpolynomial_fold_print(__isl_keep isl_pw_qpolynomial_fold *pwf,
  496.         FILE *out, unsigned output_format);
  497. void isl_pw_qpolynomial_fold_dump(__isl_keep isl_pw_qpolynomial_fold *pwf);
  498.  
  499. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_coalesce(
  500.         __isl_take isl_pw_qpolynomial_fold *pwf);
  501. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist(
  502.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
  503. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist_params(
  504.         __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
  505.  
  506. __isl_give isl_val *isl_pw_qpolynomial_fold_max(
  507.         __isl_take isl_pw_qpolynomial_fold *pwf);
  508. __isl_give isl_val *isl_pw_qpolynomial_fold_min(
  509.         __isl_take isl_pw_qpolynomial_fold *pwf);
  510.  
  511. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_bound(
  512.         __isl_take isl_pw_qpolynomial *pwqp, enum isl_fold type,
  513.         isl_bool *tight);
  514. __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_bound(
  515.         __isl_take isl_pw_qpolynomial_fold *pwf, isl_bool *tight);
  516. __isl_give isl_pw_qpolynomial_fold *isl_set_apply_pw_qpolynomial_fold(
  517.         __isl_take isl_set *set, __isl_take isl_pw_qpolynomial_fold *pwf,
  518.         isl_bool *tight);
  519. __isl_give isl_pw_qpolynomial_fold *isl_map_apply_pw_qpolynomial_fold(
  520.         __isl_take isl_map *map, __isl_take isl_pw_qpolynomial_fold *pwf,
  521.         isl_bool *tight);
  522.  
  523. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_to_polynomial(
  524.         __isl_take isl_pw_qpolynomial *pwqp, int sign);
  525.  
  526. isl_ctx *isl_union_pw_qpolynomial_get_ctx(
  527.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  528.  
  529. isl_size isl_union_pw_qpolynomial_dim(
  530.         __isl_keep isl_union_pw_qpolynomial *upwqp, enum isl_dim_type type);
  531.  
  532. isl_bool isl_union_pw_qpolynomial_involves_nan(
  533.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  534. isl_bool isl_union_pw_qpolynomial_plain_is_equal(
  535.         __isl_keep isl_union_pw_qpolynomial *upwqp1,
  536.         __isl_keep isl_union_pw_qpolynomial *upwqp2);
  537.  
  538. __isl_give isl_union_pw_qpolynomial *isl_pw_qpolynomial_to_union_pw_qpolynomial(
  539.         __isl_take isl_pw_qpolynomial *pwqp);
  540. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_from_pw_qpolynomial(__isl_take isl_pw_qpolynomial *pwqp);
  541. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_ctx(
  542.         isl_ctx *ctx);
  543. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_space(
  544.         __isl_take isl_space *space);
  545. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero(
  546.         __isl_take isl_space *space);
  547. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add_pw_qpolynomial(
  548.         __isl_take isl_union_pw_qpolynomial *upwqp,
  549.         __isl_take isl_pw_qpolynomial *pwqp);
  550. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_copy(
  551.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  552. __isl_null isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_free(
  553.         __isl_take isl_union_pw_qpolynomial *upwqp);
  554.  
  555. __isl_constructor
  556. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_read_from_str(
  557.         isl_ctx *ctx, const char *str);
  558. __isl_give char *isl_union_pw_qpolynomial_to_str(
  559.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  560.  
  561. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_neg(
  562.         __isl_take isl_union_pw_qpolynomial *upwqp);
  563.  
  564. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add(
  565.         __isl_take isl_union_pw_qpolynomial *upwqp1,
  566.         __isl_take isl_union_pw_qpolynomial *upwqp2);
  567. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sub(
  568.         __isl_take isl_union_pw_qpolynomial *upwqp1,
  569.         __isl_take isl_union_pw_qpolynomial *upwqp2);
  570. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul(
  571.         __isl_take isl_union_pw_qpolynomial *upwqp1,
  572.         __isl_take isl_union_pw_qpolynomial *upwqp2);
  573. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_val(
  574.         __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v);
  575. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_down_val(
  576.         __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v);
  577.  
  578. __isl_export
  579. __isl_give isl_union_set *isl_union_pw_qpolynomial_domain(
  580.         __isl_take isl_union_pw_qpolynomial *upwqp);
  581. __isl_give isl_union_pw_qpolynomial *
  582. isl_union_pw_qpolynomial_intersect_domain_space(
  583.         __isl_take isl_union_pw_qpolynomial *upwpq,
  584.         __isl_take isl_space *space);
  585. __isl_give isl_union_pw_qpolynomial *
  586. isl_union_pw_qpolynomial_intersect_domain_union_set(
  587.         __isl_take isl_union_pw_qpolynomial *upwpq,
  588.         __isl_take isl_union_set *uset);
  589. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_domain(
  590.         __isl_take isl_union_pw_qpolynomial *upwpq,
  591.         __isl_take isl_union_set *uset);
  592. __isl_give isl_union_pw_qpolynomial *
  593. isl_union_pw_qpolynomial_intersect_domain_wrapped_domain(
  594.         __isl_take isl_union_pw_qpolynomial *upwpq,
  595.         __isl_take isl_union_set *uset);
  596. __isl_give isl_union_pw_qpolynomial *
  597. isl_union_pw_qpolynomial_intersect_domain_wrapped_range(
  598.         __isl_take isl_union_pw_qpolynomial *upwpq,
  599.         __isl_take isl_union_set *uset);
  600. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_params(
  601.         __isl_take isl_union_pw_qpolynomial *upwpq,
  602.         __isl_take isl_set *set);
  603. __isl_give isl_union_pw_qpolynomial *
  604. isl_union_pw_qpolynomial_subtract_domain_union_set(
  605.         __isl_take isl_union_pw_qpolynomial *upwpq,
  606.         __isl_take isl_union_set *uset);
  607. __isl_give isl_union_pw_qpolynomial *
  608. isl_union_pw_qpolynomial_subtract_domain_space(
  609.         __isl_take isl_union_pw_qpolynomial *upwpq,
  610.         __isl_take isl_space *space);
  611. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_subtract_domain(
  612.         __isl_take isl_union_pw_qpolynomial *upwpq,
  613.         __isl_take isl_union_set *uset);
  614.  
  615. __isl_give isl_space *isl_union_pw_qpolynomial_get_space(
  616.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  617. __isl_give isl_pw_qpolynomial_list *
  618. isl_union_pw_qpolynomial_get_pw_qpolynomial_list(
  619.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  620.  
  621. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_set_dim_name(
  622.         __isl_take isl_union_pw_qpolynomial *upwqp,
  623.         enum isl_dim_type type, unsigned pos, const char *s);
  624.  
  625. int isl_union_pw_qpolynomial_find_dim_by_name(
  626.         __isl_keep isl_union_pw_qpolynomial *upwqp,
  627.         enum isl_dim_type type, const char *name);
  628.  
  629. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_drop_dims(
  630.         __isl_take isl_union_pw_qpolynomial *upwqp,
  631.         enum isl_dim_type type, unsigned first, unsigned n);
  632. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_reset_user(
  633.         __isl_take isl_union_pw_qpolynomial *upwqp);
  634.  
  635. __isl_export
  636. __isl_give isl_val *isl_union_pw_qpolynomial_eval(
  637.         __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_point *pnt);
  638.  
  639. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_coalesce(
  640.         __isl_take isl_union_pw_qpolynomial *upwqp);
  641. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist(
  642.         __isl_take isl_union_pw_qpolynomial *upwqp,
  643.         __isl_take isl_union_set *context);
  644. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist_params(
  645.         __isl_take isl_union_pw_qpolynomial *upwqp,
  646.         __isl_take isl_set *context);
  647.  
  648. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_align_params(
  649.         __isl_take isl_union_pw_qpolynomial *upwqp,
  650.         __isl_take isl_space *model);
  651.  
  652. isl_size isl_union_pw_qpolynomial_n_pw_qpolynomial(
  653.         __isl_keep isl_union_pw_qpolynomial *upwqp);
  654. isl_stat isl_union_pw_qpolynomial_foreach_pw_qpolynomial(
  655.         __isl_keep isl_union_pw_qpolynomial *upwqp,
  656.         isl_stat (*fn)(__isl_take isl_pw_qpolynomial *pwqp, void *user),
  657.         void *user);
  658. isl_bool isl_union_pw_qpolynomial_every_pw_qpolynomial(
  659.         __isl_keep isl_union_pw_qpolynomial *upwqp,
  660.         isl_bool (*test)(__isl_keep isl_pw_qpolynomial *pwqp, void *user),
  661.         void *user);
  662. __isl_give isl_pw_qpolynomial *isl_union_pw_qpolynomial_extract_pw_qpolynomial(
  663.         __isl_keep isl_union_pw_qpolynomial *upwqp,
  664.         __isl_take isl_space *space);
  665.  
  666. __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial(
  667.         __isl_take isl_printer *p, __isl_keep isl_union_pw_qpolynomial *upwqp);
  668.  
  669. isl_ctx *isl_union_pw_qpolynomial_fold_get_ctx(
  670.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  671.  
  672. isl_size isl_union_pw_qpolynomial_fold_dim(
  673.         __isl_keep isl_union_pw_qpolynomial_fold *upwf, enum isl_dim_type type);
  674.  
  675. isl_bool isl_union_pw_qpolynomial_fold_involves_nan(
  676.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  677. isl_bool isl_union_pw_qpolynomial_fold_plain_is_equal(
  678.         __isl_keep isl_union_pw_qpolynomial_fold *upwf1,
  679.         __isl_keep isl_union_pw_qpolynomial_fold *upwf2);
  680.  
  681. __isl_give isl_union_pw_qpolynomial_fold *
  682. isl_pw_qpolynomial_fold_to_union_pw_qpolynomial_fold(
  683.         __isl_take isl_pw_qpolynomial_fold *pwf);
  684. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_from_pw_qpolynomial_fold(__isl_take isl_pw_qpolynomial_fold *pwf);
  685. __isl_give isl_union_pw_qpolynomial_fold *
  686. isl_union_pw_qpolynomial_fold_zero_ctx(isl_ctx *ctx, enum isl_fold type);
  687. __isl_give isl_union_pw_qpolynomial_fold *
  688. isl_union_pw_qpolynomial_fold_zero_space(__isl_take isl_space *space,
  689.         enum isl_fold type);
  690. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_zero(
  691.         __isl_take isl_space *space, enum isl_fold type);
  692. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold(
  693.         __isl_take isl_union_pw_qpolynomial_fold *upwqp,
  694.         __isl_take isl_pw_qpolynomial_fold *pwqp);
  695. __isl_null isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_free(
  696.         __isl_take isl_union_pw_qpolynomial_fold *upwf);
  697. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_copy(
  698.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  699.  
  700. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold(
  701.         __isl_take isl_union_pw_qpolynomial_fold *upwf1,
  702.         __isl_take isl_union_pw_qpolynomial_fold *upwf2);
  703. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial(
  704.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  705.         __isl_take isl_union_pw_qpolynomial *upwqp);
  706. __isl_give isl_union_pw_qpolynomial_fold *
  707. isl_union_pw_qpolynomial_fold_scale_val(
  708.         __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v);
  709. __isl_give isl_union_pw_qpolynomial_fold *
  710. isl_union_pw_qpolynomial_fold_scale_down_val(
  711.         __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v);
  712.  
  713. __isl_give isl_union_set *isl_union_pw_qpolynomial_fold_domain(
  714.         __isl_take isl_union_pw_qpolynomial_fold *upwf);
  715. __isl_give isl_union_pw_qpolynomial_fold *
  716. isl_union_pw_qpolynomial_fold_intersect_domain_space(
  717.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  718.         __isl_take isl_space *space);
  719. __isl_give isl_union_pw_qpolynomial_fold *
  720. isl_union_pw_qpolynomial_fold_intersect_domain_union_set(
  721.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  722.         __isl_take isl_union_set *uset);
  723. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_intersect_domain(
  724.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  725.         __isl_take isl_union_set *uset);
  726. __isl_give isl_union_pw_qpolynomial_fold *
  727. isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_domain(
  728.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  729.         __isl_take isl_union_set *uset);
  730. __isl_give isl_union_pw_qpolynomial_fold *
  731. isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_range(
  732.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  733.         __isl_take isl_union_set *uset);
  734. __isl_give isl_union_pw_qpolynomial_fold *
  735. isl_union_pw_qpolynomial_fold_intersect_params(
  736.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  737.         __isl_take isl_set *set);
  738. __isl_give isl_union_pw_qpolynomial_fold *
  739. isl_union_pw_qpolynomial_fold_subtract_domain_union_set(
  740.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  741.         __isl_take isl_union_set *uset);
  742. __isl_give isl_union_pw_qpolynomial_fold *
  743. isl_union_pw_qpolynomial_fold_subtract_domain_space(
  744.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  745.         __isl_take isl_space *space);
  746. __isl_give isl_union_pw_qpolynomial_fold *
  747. isl_union_pw_qpolynomial_fold_subtract_domain(
  748.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  749.         __isl_take isl_union_set *uset);
  750.  
  751. enum isl_fold isl_union_pw_qpolynomial_fold_get_type(
  752.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  753. __isl_give isl_space *isl_union_pw_qpolynomial_fold_get_space(
  754.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  755. __isl_give isl_pw_qpolynomial_fold_list *
  756. isl_union_pw_qpolynomial_fold_get_pw_qpolynomial_fold_list(
  757.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  758.  
  759. __isl_give isl_union_pw_qpolynomial_fold *
  760. isl_union_pw_qpolynomial_fold_set_dim_name(
  761.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  762.         enum isl_dim_type type, unsigned pos, const char *s);
  763.  
  764. int isl_union_pw_qpolynomial_fold_find_dim_by_name(
  765.         __isl_keep isl_union_pw_qpolynomial_fold *upwf,
  766.         enum isl_dim_type type, const char *name);
  767.  
  768. __isl_give isl_union_pw_qpolynomial_fold *
  769.         isl_union_pw_qpolynomial_fold_drop_dims(
  770.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  771.         enum isl_dim_type type, unsigned first, unsigned n);
  772. __isl_give isl_union_pw_qpolynomial_fold *
  773. isl_union_pw_qpolynomial_fold_reset_user(
  774.         __isl_take isl_union_pw_qpolynomial_fold *upwf);
  775.  
  776. __isl_give isl_val *isl_union_pw_qpolynomial_fold_eval(
  777.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  778.         __isl_take isl_point *pnt);
  779.  
  780. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_coalesce(
  781.         __isl_take isl_union_pw_qpolynomial_fold *upwf);
  782. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_gist(
  783.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  784.         __isl_take isl_union_set *context);
  785. __isl_give isl_union_pw_qpolynomial_fold *
  786. isl_union_pw_qpolynomial_fold_gist_params(
  787.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  788.         __isl_take isl_set *context);
  789.  
  790. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_align_params(
  791.         __isl_take isl_union_pw_qpolynomial_fold *upwf,
  792.         __isl_take isl_space *model);
  793.  
  794. isl_size isl_union_pw_qpolynomial_fold_n_pw_qpolynomial_fold(
  795.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  796. isl_stat isl_union_pw_qpolynomial_fold_foreach_pw_qpolynomial_fold(
  797.         __isl_keep isl_union_pw_qpolynomial_fold *upwf,
  798.         isl_stat (*fn)(__isl_take isl_pw_qpolynomial_fold *pwf,
  799.                     void *user), void *user);
  800. isl_bool isl_union_pw_qpolynomial_fold_every_pw_qpolynomial_fold(
  801.         __isl_keep isl_union_pw_qpolynomial_fold *upwf,
  802.         isl_bool (*test)(__isl_keep isl_pw_qpolynomial_fold *pwf,
  803.                 void *user), void *user);
  804. __isl_give isl_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_extract_pw_qpolynomial_fold(
  805.         __isl_keep isl_union_pw_qpolynomial_fold *upwf,
  806.         __isl_take isl_space *space);
  807.  
  808. __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial_fold(
  809.         __isl_take isl_printer *p,
  810.         __isl_keep isl_union_pw_qpolynomial_fold *upwf);
  811.  
  812. __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_bound(
  813.         __isl_take isl_union_pw_qpolynomial *upwqp,
  814.         enum isl_fold type, isl_bool *tight);
  815. __isl_give isl_union_pw_qpolynomial_fold *isl_union_set_apply_union_pw_qpolynomial_fold(
  816.         __isl_take isl_union_set *uset,
  817.         __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight);
  818. __isl_give isl_union_pw_qpolynomial_fold *isl_union_map_apply_union_pw_qpolynomial_fold(
  819.         __isl_take isl_union_map *umap,
  820.         __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight);
  821.  
  822. __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_to_polynomial(
  823.         __isl_take isl_union_pw_qpolynomial *upwqp, int sign);
  824.  
  825. ISL_DECLARE_LIST_FN(qpolynomial)
  826. ISL_DECLARE_LIST_FN(pw_qpolynomial)
  827. ISL_DECLARE_LIST_FN(pw_qpolynomial_fold)
  828.  
  829. #if defined(__cplusplus)
  830. }
  831. #endif
  832.  
  833. #endif
  834.