Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

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

  1. #ifndef ISL_AFF_H
  2. #define ISL_AFF_H
  3.  
  4. #include <isl/stdint.h>
  5. #include <isl/local_space.h>
  6. #include <isl/printer.h>
  7. #include <isl/id_type.h>
  8. #include <isl/set_type.h>
  9. #include <isl/aff_type.h>
  10. #include <isl/list.h>
  11. #include <isl/multi.h>
  12. #include <isl/union_set_type.h>
  13. #include <isl/val_type.h>
  14. #include <isl/point.h>
  15.  
  16. #if defined(__cplusplus)
  17. extern "C" {
  18. #endif
  19.  
  20. __isl_overload
  21. __isl_give isl_aff *isl_aff_zero_on_domain_space(__isl_take isl_space *space);
  22. __isl_export
  23. __isl_give isl_aff *isl_space_zero_aff_on_domain(__isl_take isl_space *space);
  24. __isl_give isl_aff *isl_aff_zero_on_domain(__isl_take isl_local_space *ls);
  25. __isl_give isl_aff *isl_aff_val_on_domain_space(__isl_take isl_space *space,
  26.         __isl_take isl_val *val);
  27. __isl_give isl_aff *isl_aff_val_on_domain(__isl_take isl_local_space *ls,
  28.         __isl_take isl_val *val);
  29. __isl_give isl_aff *isl_aff_var_on_domain(__isl_take isl_local_space *ls,
  30.         enum isl_dim_type type, unsigned pos);
  31. __isl_give isl_aff *isl_aff_nan_on_domain_space(__isl_take isl_space *space);
  32. __isl_give isl_aff *isl_aff_nan_on_domain(__isl_take isl_local_space *ls);
  33. __isl_give isl_aff *isl_aff_param_on_domain_space_id(
  34.         __isl_take isl_space *space, __isl_take isl_id *id);
  35. __isl_overload
  36. __isl_give isl_aff *isl_space_param_aff_on_domain_id(
  37.         __isl_take isl_space *space, __isl_take isl_id *id);
  38.  
  39. __isl_give isl_aff *isl_aff_copy(__isl_keep isl_aff *aff);
  40. __isl_null isl_aff *isl_aff_free(__isl_take isl_aff *aff);
  41.  
  42. isl_ctx *isl_aff_get_ctx(__isl_keep isl_aff *aff);
  43. uint32_t isl_aff_get_hash(__isl_keep isl_aff *aff);
  44.  
  45. isl_bool isl_aff_involves_locals(__isl_keep isl_aff *aff);
  46.  
  47. isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type);
  48. isl_bool isl_aff_involves_dims(__isl_keep isl_aff *aff,
  49.         enum isl_dim_type type, unsigned first, unsigned n);
  50.  
  51. __isl_give isl_space *isl_aff_get_domain_space(__isl_keep isl_aff *aff);
  52. __isl_give isl_space *isl_aff_get_space(__isl_keep isl_aff *aff);
  53. __isl_give isl_local_space *isl_aff_get_domain_local_space(
  54.         __isl_keep isl_aff *aff);
  55. __isl_give isl_local_space *isl_aff_get_local_space(__isl_keep isl_aff *aff);
  56.  
  57. const char *isl_aff_get_dim_name(__isl_keep isl_aff *aff,
  58.         enum isl_dim_type type, unsigned pos);
  59. __isl_export
  60. __isl_give isl_val *isl_aff_get_constant_val(__isl_keep isl_aff *aff);
  61. __isl_give isl_val *isl_aff_get_coefficient_val(__isl_keep isl_aff *aff,
  62.         enum isl_dim_type type, int pos);
  63. int isl_aff_coefficient_sgn(__isl_keep isl_aff *aff,
  64.         enum isl_dim_type type, int pos);
  65. __isl_give isl_val *isl_aff_get_denominator_val(__isl_keep isl_aff *aff);
  66. __isl_give isl_aff *isl_aff_set_constant_si(__isl_take isl_aff *aff, int v);
  67. __isl_give isl_aff *isl_aff_set_constant_val(__isl_take isl_aff *aff,
  68.         __isl_take isl_val *v);
  69. __isl_give isl_aff *isl_aff_set_coefficient_si(__isl_take isl_aff *aff,
  70.         enum isl_dim_type type, int pos, int v);
  71. __isl_give isl_aff *isl_aff_set_coefficient_val(__isl_take isl_aff *aff,
  72.         enum isl_dim_type type, int pos, __isl_take isl_val *v);
  73. __isl_give isl_aff *isl_aff_add_constant_si(__isl_take isl_aff *aff, int v);
  74. __isl_overload
  75. __isl_give isl_aff *isl_aff_add_constant_val(__isl_take isl_aff *aff,
  76.         __isl_take isl_val *v);
  77. __isl_give isl_aff *isl_aff_add_constant_num_si(__isl_take isl_aff *aff, int v);
  78. __isl_give isl_aff *isl_aff_add_coefficient_si(__isl_take isl_aff *aff,
  79.         enum isl_dim_type type, int pos, int v);
  80. __isl_give isl_aff *isl_aff_add_coefficient_val(__isl_take isl_aff *aff,
  81.         enum isl_dim_type type, int pos, __isl_take isl_val *v);
  82.  
  83. __isl_export
  84. isl_bool isl_aff_is_cst(__isl_keep isl_aff *aff);
  85.  
  86. __isl_give isl_aff *isl_aff_set_tuple_id(__isl_take isl_aff *aff,
  87.         enum isl_dim_type type, __isl_take isl_id *id);
  88. __isl_give isl_aff *isl_aff_set_dim_name(__isl_take isl_aff *aff,
  89.         enum isl_dim_type type, unsigned pos, const char *s);
  90. __isl_give isl_aff *isl_aff_set_dim_id(__isl_take isl_aff *aff,
  91.         enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  92.  
  93. int isl_aff_find_dim_by_name(__isl_keep isl_aff *aff, enum isl_dim_type type,
  94.         const char *name);
  95.  
  96. isl_bool isl_aff_plain_is_equal(__isl_keep isl_aff *aff1,
  97.         __isl_keep isl_aff *aff2);
  98. isl_bool isl_aff_plain_is_zero(__isl_keep isl_aff *aff);
  99. isl_bool isl_aff_is_nan(__isl_keep isl_aff *aff);
  100.  
  101. __isl_give isl_aff *isl_aff_get_div(__isl_keep isl_aff *aff, int pos);
  102.  
  103. __isl_give isl_aff *isl_aff_from_range(__isl_take isl_aff *aff);
  104.  
  105. __isl_export
  106. __isl_give isl_aff *isl_aff_neg(__isl_take isl_aff *aff);
  107. __isl_export
  108. __isl_give isl_aff *isl_aff_ceil(__isl_take isl_aff *aff);
  109. __isl_export
  110. __isl_give isl_aff *isl_aff_floor(__isl_take isl_aff *aff);
  111. __isl_overload
  112. __isl_give isl_aff *isl_aff_mod_val(__isl_take isl_aff *aff,
  113.         __isl_take isl_val *mod);
  114.  
  115. __isl_export
  116. __isl_give isl_aff *isl_aff_mul(__isl_take isl_aff *aff1,
  117.         __isl_take isl_aff *aff2);
  118. __isl_export
  119. __isl_give isl_aff *isl_aff_div(__isl_take isl_aff *aff1,
  120.         __isl_take isl_aff *aff2);
  121. __isl_export
  122. __isl_give isl_aff *isl_aff_add(__isl_take isl_aff *aff1,
  123.         __isl_take isl_aff *aff2);
  124. __isl_export
  125. __isl_give isl_aff *isl_aff_sub(__isl_take isl_aff *aff1,
  126.         __isl_take isl_aff *aff2);
  127.  
  128. __isl_overload
  129. __isl_give isl_aff *isl_aff_scale_val(__isl_take isl_aff *aff,
  130.         __isl_take isl_val *v);
  131. __isl_give isl_aff *isl_aff_scale_down_ui(__isl_take isl_aff *aff, unsigned f);
  132. __isl_overload
  133. __isl_give isl_aff *isl_aff_scale_down_val(__isl_take isl_aff *aff,
  134.         __isl_take isl_val *v);
  135.  
  136. __isl_give isl_aff *isl_aff_insert_dims(__isl_take isl_aff *aff,
  137.         enum isl_dim_type type, unsigned first, unsigned n);
  138. __isl_give isl_aff *isl_aff_add_dims(__isl_take isl_aff *aff,
  139.         enum isl_dim_type type, unsigned n);
  140. __isl_give isl_aff *isl_aff_move_dims(__isl_take isl_aff *aff,
  141.         enum isl_dim_type dst_type, unsigned dst_pos,
  142.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  143. __isl_give isl_aff *isl_aff_drop_dims(__isl_take isl_aff *aff,
  144.         enum isl_dim_type type, unsigned first, unsigned n);
  145. __isl_give isl_aff *isl_aff_project_domain_on_params(__isl_take isl_aff *aff);
  146. __isl_export
  147. __isl_give isl_aff *isl_aff_unbind_params_insert_domain(
  148.         __isl_take isl_aff *aff, __isl_take isl_multi_id *domain);
  149.  
  150. __isl_give isl_aff *isl_aff_align_params(__isl_take isl_aff *aff,
  151.         __isl_take isl_space *model);
  152.  
  153. __isl_export
  154. __isl_give isl_aff *isl_aff_gist(__isl_take isl_aff *aff,
  155.         __isl_take isl_set *context);
  156. __isl_give isl_aff *isl_aff_gist_params(__isl_take isl_aff *aff,
  157.         __isl_take isl_set *context);
  158.  
  159. __isl_export
  160. __isl_give isl_val *isl_aff_eval(__isl_take isl_aff *aff,
  161.         __isl_take isl_point *pnt);
  162.  
  163. __isl_give isl_aff *isl_aff_pullback_aff(__isl_take isl_aff *aff1,
  164.         __isl_take isl_aff *aff2);
  165. __isl_overload
  166. __isl_give isl_aff *isl_aff_pullback_multi_aff(__isl_take isl_aff *aff,
  167.         __isl_take isl_multi_aff *ma);
  168.  
  169. __isl_give isl_basic_set *isl_aff_zero_basic_set(__isl_take isl_aff *aff);
  170. __isl_give isl_basic_set *isl_aff_neg_basic_set(__isl_take isl_aff *aff);
  171.  
  172. __isl_give isl_basic_set *isl_aff_eq_basic_set(__isl_take isl_aff *aff1,
  173.         __isl_take isl_aff *aff2);
  174. __isl_export
  175. __isl_give isl_set *isl_aff_eq_set(__isl_take isl_aff *aff1,
  176.         __isl_take isl_aff *aff2);
  177. __isl_export
  178. __isl_give isl_set *isl_aff_ne_set(__isl_take isl_aff *aff1,
  179.         __isl_take isl_aff *aff2);
  180. __isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1,
  181.         __isl_take isl_aff *aff2);
  182. __isl_export
  183. __isl_give isl_set *isl_aff_le_set(__isl_take isl_aff *aff1,
  184.         __isl_take isl_aff *aff2);
  185. __isl_give isl_basic_set *isl_aff_lt_basic_set(__isl_take isl_aff *aff1,
  186.         __isl_take isl_aff *aff2);
  187. __isl_export
  188. __isl_give isl_set *isl_aff_lt_set(__isl_take isl_aff *aff1,
  189.         __isl_take isl_aff *aff2);
  190. __isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1,
  191.         __isl_take isl_aff *aff2);
  192. __isl_export
  193. __isl_give isl_set *isl_aff_ge_set(__isl_take isl_aff *aff1,
  194.         __isl_take isl_aff *aff2);
  195. __isl_give isl_basic_set *isl_aff_gt_basic_set(__isl_take isl_aff *aff1,
  196.         __isl_take isl_aff *aff2);
  197. __isl_export
  198. __isl_give isl_set *isl_aff_gt_set(__isl_take isl_aff *aff1,
  199.         __isl_take isl_aff *aff2);
  200.  
  201. __isl_overload
  202. __isl_give isl_basic_set *isl_aff_bind_id(__isl_take isl_aff *aff,
  203.         __isl_take isl_id *id);
  204.  
  205. __isl_constructor
  206. __isl_give isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str);
  207. __isl_give char *isl_aff_to_str(__isl_keep isl_aff *aff);
  208. __isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p,
  209.         __isl_keep isl_aff *aff);
  210. void isl_aff_dump(__isl_keep isl_aff *aff);
  211.  
  212. isl_ctx *isl_pw_aff_get_ctx(__isl_keep isl_pw_aff *pwaff);
  213. uint32_t isl_pw_aff_get_hash(__isl_keep isl_pw_aff *pa);
  214. __isl_give isl_space *isl_pw_aff_get_domain_space(__isl_keep isl_pw_aff *pwaff);
  215. __isl_export
  216. __isl_give isl_space *isl_pw_aff_get_space(__isl_keep isl_pw_aff *pwaff);
  217.  
  218. __isl_constructor
  219. __isl_give isl_pw_aff *isl_pw_aff_from_aff(__isl_take isl_aff *aff);
  220. __isl_give isl_pw_aff *isl_pw_aff_empty(__isl_take isl_space *space);
  221. __isl_give isl_pw_aff *isl_pw_aff_alloc(__isl_take isl_set *set,
  222.         __isl_take isl_aff *aff);
  223. __isl_give isl_pw_aff *isl_pw_aff_zero_on_domain(
  224.         __isl_take isl_local_space *ls);
  225. __isl_give isl_pw_aff *isl_pw_aff_var_on_domain(__isl_take isl_local_space *ls,
  226.         enum isl_dim_type type, unsigned pos);
  227. __isl_give isl_pw_aff *isl_pw_aff_nan_on_domain_space(
  228.         __isl_take isl_space *space);
  229. __isl_give isl_pw_aff *isl_pw_aff_nan_on_domain(__isl_take isl_local_space *ls);
  230. __isl_give isl_pw_aff *isl_pw_aff_val_on_domain(__isl_take isl_set *domain,
  231.         __isl_take isl_val *v);
  232. __isl_overload
  233. __isl_give isl_pw_aff *isl_pw_aff_param_on_domain_id(
  234.         __isl_take isl_set *domain, __isl_take isl_id *id);
  235.  
  236. __isl_export
  237. __isl_give isl_pw_aff *isl_set_indicator_function(__isl_take isl_set *set);
  238.  
  239. const char *isl_pw_aff_get_dim_name(__isl_keep isl_pw_aff *pa,
  240.         enum isl_dim_type type, unsigned pos);
  241. isl_bool isl_pw_aff_has_dim_id(__isl_keep isl_pw_aff *pa,
  242.         enum isl_dim_type type, unsigned pos);
  243. __isl_give isl_id *isl_pw_aff_get_dim_id(__isl_keep isl_pw_aff *pa,
  244.         enum isl_dim_type type, unsigned pos);
  245. __isl_give isl_pw_aff *isl_pw_aff_set_dim_id(__isl_take isl_pw_aff *pma,
  246.         enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  247.  
  248. int isl_pw_aff_find_dim_by_name(__isl_keep isl_pw_aff *pa,
  249.         enum isl_dim_type type, const char *name);
  250.  
  251. isl_bool isl_pw_aff_is_empty(__isl_keep isl_pw_aff *pwaff);
  252. isl_bool isl_pw_aff_involves_nan(__isl_keep isl_pw_aff *pa);
  253. int isl_pw_aff_plain_cmp(__isl_keep isl_pw_aff *pa1,
  254.         __isl_keep isl_pw_aff *pa2);
  255. isl_bool isl_pw_aff_plain_is_equal(__isl_keep isl_pw_aff *pwaff1,
  256.         __isl_keep isl_pw_aff *pwaff2);
  257. isl_bool isl_pw_aff_is_equal(__isl_keep isl_pw_aff *pa1,
  258.         __isl_keep isl_pw_aff *pa2);
  259.  
  260. __isl_give isl_pw_aff *isl_pw_aff_union_min(__isl_take isl_pw_aff *pwaff1,
  261.         __isl_take isl_pw_aff *pwaff2);
  262. __isl_give isl_pw_aff *isl_pw_aff_union_max(__isl_take isl_pw_aff *pwaff1,
  263.         __isl_take isl_pw_aff *pwaff2);
  264. __isl_export
  265. __isl_give isl_pw_aff *isl_pw_aff_union_add(__isl_take isl_pw_aff *pwaff1,
  266.         __isl_take isl_pw_aff *pwaff2);
  267.  
  268. __isl_give isl_pw_aff *isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff);
  269. __isl_null isl_pw_aff *isl_pw_aff_free(__isl_take isl_pw_aff *pwaff);
  270.  
  271. isl_size isl_pw_aff_dim(__isl_keep isl_pw_aff *pwaff, enum isl_dim_type type);
  272. isl_bool isl_pw_aff_involves_param_id(__isl_keep isl_pw_aff *pa,
  273.         __isl_keep isl_id *id);
  274. isl_bool isl_pw_aff_involves_dims(__isl_keep isl_pw_aff *pwaff,
  275.         enum isl_dim_type type, unsigned first, unsigned n);
  276.  
  277. isl_bool isl_pw_aff_is_cst(__isl_keep isl_pw_aff *pwaff);
  278.  
  279. __isl_export
  280. __isl_give isl_pw_aff *isl_pw_aff_insert_domain(__isl_take isl_pw_aff *pa,
  281.         __isl_take isl_space *domain);
  282. __isl_give isl_pw_aff *isl_pw_aff_project_domain_on_params(
  283.         __isl_take isl_pw_aff *pa);
  284.  
  285. __isl_give isl_pw_aff *isl_pw_aff_align_params(__isl_take isl_pw_aff *pwaff,
  286.         __isl_take isl_space *model);
  287. __isl_give isl_pw_aff *isl_pw_aff_drop_unused_params(
  288.         __isl_take isl_pw_aff *pa);
  289.  
  290. isl_bool isl_pw_aff_has_tuple_id(__isl_keep isl_pw_aff *pa,
  291.         enum isl_dim_type type);
  292. __isl_give isl_id *isl_pw_aff_get_tuple_id(__isl_keep isl_pw_aff *pa,
  293.         enum isl_dim_type type);
  294. __isl_give isl_pw_aff *isl_pw_aff_set_tuple_id(__isl_take isl_pw_aff *pwaff,
  295.         enum isl_dim_type type, __isl_take isl_id *id);
  296. __isl_give isl_pw_aff *isl_pw_aff_reset_tuple_id(__isl_take isl_pw_aff *pa,
  297.         enum isl_dim_type type);
  298. __isl_give isl_pw_aff *isl_pw_aff_reset_user(__isl_take isl_pw_aff *pa);
  299.  
  300. __isl_give isl_set *isl_pw_aff_params(__isl_take isl_pw_aff *pwa);
  301. __isl_export
  302. __isl_give isl_set *isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff);
  303. __isl_give isl_pw_aff *isl_pw_aff_from_range(__isl_take isl_pw_aff *pwa);
  304.  
  305. __isl_export
  306. __isl_give isl_pw_aff *isl_pw_aff_min(__isl_take isl_pw_aff *pwaff1,
  307.         __isl_take isl_pw_aff *pwaff2);
  308. __isl_export
  309. __isl_give isl_pw_aff *isl_pw_aff_max(__isl_take isl_pw_aff *pwaff1,
  310.         __isl_take isl_pw_aff *pwaff2);
  311. __isl_export
  312. __isl_give isl_pw_aff *isl_pw_aff_mul(__isl_take isl_pw_aff *pwaff1,
  313.         __isl_take isl_pw_aff *pwaff2);
  314. __isl_export
  315. __isl_give isl_pw_aff *isl_pw_aff_div(__isl_take isl_pw_aff *pa1,
  316.         __isl_take isl_pw_aff *pa2);
  317. __isl_export
  318. __isl_give isl_pw_aff *isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1,
  319.         __isl_take isl_pw_aff *pwaff2);
  320. __isl_export
  321. __isl_give isl_pw_aff *isl_pw_aff_sub(__isl_take isl_pw_aff *pwaff1,
  322.         __isl_take isl_pw_aff *pwaff2);
  323. __isl_export
  324. __isl_give isl_pw_aff *isl_pw_aff_neg(__isl_take isl_pw_aff *pwaff);
  325. __isl_export
  326. __isl_give isl_pw_aff *isl_pw_aff_ceil(__isl_take isl_pw_aff *pwaff);
  327. __isl_export
  328. __isl_give isl_pw_aff *isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff);
  329. __isl_overload
  330. __isl_give isl_pw_aff *isl_pw_aff_mod_val(__isl_take isl_pw_aff *pa,
  331.         __isl_take isl_val *mod);
  332. __isl_export
  333. __isl_give isl_pw_aff *isl_pw_aff_tdiv_q(__isl_take isl_pw_aff *pa1,
  334.         __isl_take isl_pw_aff *pa2);
  335. __isl_export
  336. __isl_give isl_pw_aff *isl_pw_aff_tdiv_r(__isl_take isl_pw_aff *pa1,
  337.         __isl_take isl_pw_aff *pa2);
  338.  
  339. __isl_export
  340. __isl_give isl_pw_aff *isl_pw_aff_intersect_params(__isl_take isl_pw_aff *pa,
  341.         __isl_take isl_set *set);
  342. __isl_export
  343. __isl_give isl_pw_aff *isl_pw_aff_intersect_domain(__isl_take isl_pw_aff *pa,
  344.         __isl_take isl_set *set);
  345. __isl_give isl_pw_aff *isl_pw_aff_intersect_domain_wrapped_domain(
  346.         __isl_take isl_pw_aff *pa, __isl_take isl_set *set);
  347. __isl_give isl_pw_aff *isl_pw_aff_intersect_domain_wrapped_range(
  348.         __isl_take isl_pw_aff *pa, __isl_take isl_set *set);
  349. __isl_export
  350. __isl_give isl_pw_aff *isl_pw_aff_subtract_domain(__isl_take isl_pw_aff *pa,
  351.         __isl_take isl_set *set);
  352.  
  353. __isl_export
  354. __isl_give isl_pw_aff *isl_pw_aff_cond(__isl_take isl_pw_aff *cond,
  355.         __isl_take isl_pw_aff *pwaff_true, __isl_take isl_pw_aff *pwaff_false);
  356.  
  357. __isl_overload
  358. __isl_give isl_pw_aff *isl_pw_aff_add_constant_val(__isl_take isl_pw_aff *pa,
  359.         __isl_take isl_val *v);
  360. __isl_overload
  361. __isl_give isl_pw_aff *isl_pw_aff_scale_val(__isl_take isl_pw_aff *pa,
  362.         __isl_take isl_val *v);
  363. __isl_overload
  364. __isl_give isl_pw_aff *isl_pw_aff_scale_down_val(__isl_take isl_pw_aff *pa,
  365.         __isl_take isl_val *f);
  366.  
  367. __isl_give isl_pw_aff *isl_pw_aff_insert_dims(__isl_take isl_pw_aff *pwaff,
  368.         enum isl_dim_type type, unsigned first, unsigned n);
  369. __isl_give isl_pw_aff *isl_pw_aff_add_dims(__isl_take isl_pw_aff *pwaff,
  370.         enum isl_dim_type type, unsigned n);
  371. __isl_give isl_pw_aff *isl_pw_aff_move_dims(__isl_take isl_pw_aff *pa,
  372.         enum isl_dim_type dst_type, unsigned dst_pos,
  373.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  374. __isl_give isl_pw_aff *isl_pw_aff_drop_dims(__isl_take isl_pw_aff *pwaff,
  375.         enum isl_dim_type type, unsigned first, unsigned n);
  376.  
  377. __isl_export
  378. __isl_give isl_pw_aff *isl_pw_aff_coalesce(__isl_take isl_pw_aff *pa);
  379. __isl_export
  380. __isl_give isl_pw_aff *isl_pw_aff_gist(__isl_take isl_pw_aff *pwaff,
  381.         __isl_take isl_set *context);
  382. __isl_give isl_pw_aff *isl_pw_aff_gist_params(__isl_take isl_pw_aff *pwaff,
  383.         __isl_take isl_set *context);
  384.  
  385. __isl_export
  386. __isl_give isl_val *isl_pw_aff_eval(__isl_take isl_pw_aff *pa,
  387.         __isl_take isl_point *pnt);
  388.  
  389. __isl_overload
  390. __isl_give isl_pw_aff *isl_pw_aff_pullback_multi_aff(
  391.         __isl_take isl_pw_aff *pa, __isl_take isl_multi_aff *ma);
  392. __isl_overload
  393. __isl_give isl_pw_aff *isl_pw_aff_pullback_pw_multi_aff(
  394.         __isl_take isl_pw_aff *pa, __isl_take isl_pw_multi_aff *pma);
  395. __isl_overload
  396. __isl_give isl_pw_aff *isl_pw_aff_pullback_multi_pw_aff(
  397.         __isl_take isl_pw_aff *pa, __isl_take isl_multi_pw_aff *mpa);
  398.  
  399. isl_size isl_pw_aff_n_piece(__isl_keep isl_pw_aff *pwaff);
  400. isl_stat isl_pw_aff_foreach_piece(__isl_keep isl_pw_aff *pwaff,
  401.         isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_aff *aff,
  402.                     void *user), void *user);
  403. isl_bool isl_pw_aff_every_piece(__isl_keep isl_pw_aff *pa,
  404.         isl_bool (*test)(__isl_keep isl_set *set, __isl_keep isl_aff *aff,
  405.                 void *user), void *user);
  406. __isl_export
  407. isl_bool isl_pw_aff_isa_aff(__isl_keep isl_pw_aff *pa);
  408. __isl_export
  409. __isl_give isl_aff *isl_pw_aff_as_aff(__isl_take isl_pw_aff *pa);
  410.  
  411. __isl_export
  412. __isl_give isl_map *isl_pw_aff_as_map(__isl_take isl_pw_aff *pa);
  413. __isl_give isl_set *isl_set_from_pw_aff(__isl_take isl_pw_aff *pwaff);
  414. __isl_give isl_map *isl_map_from_pw_aff(__isl_take isl_pw_aff *pwaff);
  415.  
  416. __isl_give isl_set *isl_pw_aff_pos_set(__isl_take isl_pw_aff *pa);
  417. __isl_give isl_set *isl_pw_aff_nonneg_set(__isl_take isl_pw_aff *pwaff);
  418. __isl_give isl_set *isl_pw_aff_zero_set(__isl_take isl_pw_aff *pwaff);
  419. __isl_give isl_set *isl_pw_aff_non_zero_set(__isl_take isl_pw_aff *pwaff);
  420.  
  421. __isl_export
  422. __isl_give isl_set *isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1,
  423.         __isl_take isl_pw_aff *pwaff2);
  424. __isl_export
  425. __isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
  426.         __isl_take isl_pw_aff *pwaff2);
  427. __isl_export
  428. __isl_give isl_set *isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1,
  429.         __isl_take isl_pw_aff *pwaff2);
  430. __isl_export
  431. __isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
  432.         __isl_take isl_pw_aff *pwaff2);
  433. __isl_export
  434. __isl_give isl_set *isl_pw_aff_ge_set(__isl_take isl_pw_aff *pwaff1,
  435.         __isl_take isl_pw_aff *pwaff2);
  436. __isl_export
  437. __isl_give isl_set *isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1,
  438.         __isl_take isl_pw_aff *pwaff2);
  439.  
  440. __isl_give isl_map *isl_pw_aff_eq_map(__isl_take isl_pw_aff *pa1,
  441.         __isl_take isl_pw_aff *pa2);
  442. __isl_give isl_map *isl_pw_aff_le_map(__isl_take isl_pw_aff *pa1,
  443.         __isl_take isl_pw_aff *pa2);
  444. __isl_give isl_map *isl_pw_aff_lt_map(__isl_take isl_pw_aff *pa1,
  445.         __isl_take isl_pw_aff *pa2);
  446. __isl_give isl_map *isl_pw_aff_ge_map(__isl_take isl_pw_aff *pa1,
  447.         __isl_take isl_pw_aff *pa2);
  448. __isl_give isl_map *isl_pw_aff_gt_map(__isl_take isl_pw_aff *pa1,
  449.         __isl_take isl_pw_aff *pa2);
  450.  
  451. __isl_export
  452. __isl_give isl_pw_aff *isl_pw_aff_bind_domain(__isl_take isl_pw_aff *pa,
  453.         __isl_take isl_multi_id *tuple);
  454. __isl_export
  455. __isl_give isl_pw_aff *isl_pw_aff_bind_domain_wrapped_domain(
  456.         __isl_take isl_pw_aff *pa, __isl_take isl_multi_id *tuple);
  457. __isl_overload
  458. __isl_give isl_set *isl_pw_aff_bind_id(__isl_take isl_pw_aff *pa,
  459.         __isl_take isl_id *id);
  460.  
  461. __isl_constructor
  462. __isl_give isl_pw_aff *isl_pw_aff_read_from_str(isl_ctx *ctx, const char *str);
  463. __isl_give char *isl_pw_aff_to_str(__isl_keep isl_pw_aff *pa);
  464. __isl_give isl_printer *isl_printer_print_pw_aff(__isl_take isl_printer *p,
  465.         __isl_keep isl_pw_aff *pwaff);
  466. void isl_pw_aff_dump(__isl_keep isl_pw_aff *pwaff);
  467.  
  468. __isl_give isl_pw_aff *isl_pw_aff_list_min(__isl_take isl_pw_aff_list *list);
  469. __isl_give isl_pw_aff *isl_pw_aff_list_max(__isl_take isl_pw_aff_list *list);
  470.  
  471. __isl_give isl_set *isl_pw_aff_list_eq_set(__isl_take isl_pw_aff_list *list1,
  472.         __isl_take isl_pw_aff_list *list2);
  473. __isl_give isl_set *isl_pw_aff_list_ne_set(__isl_take isl_pw_aff_list *list1,
  474.         __isl_take isl_pw_aff_list *list2);
  475. __isl_give isl_set *isl_pw_aff_list_le_set(__isl_take isl_pw_aff_list *list1,
  476.         __isl_take isl_pw_aff_list *list2);
  477. __isl_give isl_set *isl_pw_aff_list_lt_set(__isl_take isl_pw_aff_list *list1,
  478.         __isl_take isl_pw_aff_list *list2);
  479. __isl_give isl_set *isl_pw_aff_list_ge_set(__isl_take isl_pw_aff_list *list1,
  480.         __isl_take isl_pw_aff_list *list2);
  481. __isl_give isl_set *isl_pw_aff_list_gt_set(__isl_take isl_pw_aff_list *list1,
  482.         __isl_take isl_pw_aff_list *list2);
  483.  
  484. ISL_DECLARE_MULTI(aff)
  485. ISL_DECLARE_MULTI_IDENTITY(aff)
  486. ISL_DECLARE_MULTI_CMP(aff)
  487. ISL_DECLARE_MULTI_ARITH(aff)
  488. ISL_DECLARE_MULTI_ADD_CONSTANT(aff)
  489. ISL_DECLARE_MULTI_ZERO(aff)
  490. ISL_DECLARE_MULTI_NAN(aff)
  491. ISL_DECLARE_MULTI_DIMS(aff)
  492. ISL_DECLARE_MULTI_INSERT_DOMAIN(aff)
  493. ISL_DECLARE_MULTI_LOCALS(aff)
  494. ISL_DECLARE_MULTI_DIM_ID(aff)
  495. ISL_DECLARE_MULTI_TUPLE_ID(aff)
  496. ISL_DECLARE_MULTI_WITH_DOMAIN(aff)
  497. ISL_DECLARE_MULTI_BIND_DOMAIN(aff)
  498. ISL_DECLARE_MULTI_UNBIND_PARAMS(aff)
  499.  
  500. __isl_constructor
  501. __isl_give isl_multi_aff *isl_multi_aff_from_aff(__isl_take isl_aff *aff);
  502. __isl_export
  503. __isl_give isl_multi_aff *isl_multi_aff_domain_map(__isl_take isl_space *space);
  504. __isl_export
  505. __isl_give isl_multi_aff *isl_space_domain_map_multi_aff(
  506.         __isl_take isl_space *space);
  507. __isl_export
  508. __isl_give isl_multi_aff *isl_multi_aff_range_map(__isl_take isl_space *space);
  509. __isl_export
  510. __isl_give isl_multi_aff *isl_space_range_map_multi_aff(
  511.         __isl_take isl_space *space);
  512. __isl_give isl_multi_aff *isl_multi_aff_project_out_map(
  513.         __isl_take isl_space *space, enum isl_dim_type type,
  514.         unsigned first, unsigned n);
  515.  
  516. __isl_overload
  517. __isl_give isl_multi_aff *isl_multi_aff_multi_val_on_domain_space(
  518.         __isl_take isl_space *space, __isl_take isl_multi_val *mv);
  519. __isl_overload
  520. __isl_give isl_multi_aff *isl_space_multi_aff_on_domain_multi_val(
  521.         __isl_take isl_space *space, __isl_take isl_multi_val *mv);
  522. __isl_give isl_multi_aff *isl_multi_aff_multi_val_on_space(
  523.         __isl_take isl_space *space, __isl_take isl_multi_val *mv);
  524.  
  525. __isl_export
  526. __isl_give isl_multi_val *isl_multi_aff_get_constant_multi_val(
  527.         __isl_keep isl_multi_aff *ma);
  528.  
  529. __isl_export
  530. __isl_give isl_multi_aff *isl_multi_aff_floor(__isl_take isl_multi_aff *ma);
  531.  
  532. __isl_give isl_multi_aff *isl_multi_aff_gist_params(
  533.         __isl_take isl_multi_aff *maff, __isl_take isl_set *context);
  534. __isl_export
  535. __isl_give isl_multi_aff *isl_multi_aff_gist(__isl_take isl_multi_aff *maff,
  536.         __isl_take isl_set *context);
  537.  
  538. __isl_give isl_multi_aff *isl_multi_aff_lift(__isl_take isl_multi_aff *maff,
  539.         __isl_give isl_local_space **ls);
  540.  
  541. __isl_overload
  542. __isl_give isl_multi_aff *isl_multi_aff_pullback_multi_aff(
  543.         __isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2);
  544.  
  545. __isl_give isl_multi_aff *isl_multi_aff_move_dims(__isl_take isl_multi_aff *ma,
  546.         enum isl_dim_type dst_type, unsigned dst_pos,
  547.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  548.  
  549. __isl_give isl_set *isl_multi_aff_lex_lt_set(__isl_take isl_multi_aff *ma1,
  550.         __isl_take isl_multi_aff *ma2);
  551. __isl_give isl_set *isl_multi_aff_lex_le_set(__isl_take isl_multi_aff *ma1,
  552.         __isl_take isl_multi_aff *ma2);
  553. __isl_give isl_set *isl_multi_aff_lex_gt_set(__isl_take isl_multi_aff *ma1,
  554.         __isl_take isl_multi_aff *ma2);
  555. __isl_give isl_set *isl_multi_aff_lex_ge_set(__isl_take isl_multi_aff *ma1,
  556.         __isl_take isl_multi_aff *ma2);
  557.  
  558. __isl_export
  559. __isl_give isl_basic_set *isl_multi_aff_bind(__isl_take isl_multi_aff *ma,
  560.         __isl_take isl_multi_id *tuple);
  561.  
  562. __isl_give char *isl_multi_aff_to_str(__isl_keep isl_multi_aff *ma);
  563. __isl_give isl_printer *isl_printer_print_multi_aff(__isl_take isl_printer *p,
  564.         __isl_keep isl_multi_aff *maff);
  565.  
  566. __isl_constructor
  567. __isl_give isl_multi_aff *isl_multi_aff_read_from_str(isl_ctx *ctx,
  568.                 const char *str);
  569. void isl_multi_aff_dump(__isl_keep isl_multi_aff *maff);
  570.  
  571. ISL_DECLARE_MULTI(pw_aff)
  572. ISL_DECLARE_MULTI_IDENTITY(pw_aff)
  573. ISL_DECLARE_MULTI_ARITH(pw_aff)
  574. ISL_DECLARE_MULTI_MIN_MAX(pw_aff)
  575. ISL_DECLARE_MULTI_ADD_CONSTANT(pw_aff)
  576. ISL_DECLARE_MULTI_ZERO(pw_aff)
  577. ISL_DECLARE_MULTI_NAN(pw_aff)
  578. ISL_DECLARE_MULTI_DIMS(pw_aff)
  579. ISL_DECLARE_MULTI_DIM_ID(pw_aff)
  580. ISL_DECLARE_MULTI_INSERT_DOMAIN(pw_aff)
  581. ISL_DECLARE_MULTI_TUPLE_ID(pw_aff)
  582. ISL_DECLARE_MULTI_WITH_DOMAIN(pw_aff)
  583. ISL_DECLARE_MULTI_BIND_DOMAIN(pw_aff)
  584. ISL_DECLARE_MULTI_PARAM(pw_aff)
  585. ISL_DECLARE_MULTI_UNBIND_PARAMS(pw_aff)
  586.  
  587. __isl_export
  588. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_zero(__isl_take isl_space *space);
  589. __isl_overload
  590. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_identity_on_domain_space(
  591.         __isl_take isl_space *space);
  592. __isl_export
  593. __isl_give isl_pw_multi_aff *isl_space_identity_pw_multi_aff_on_domain(
  594.         __isl_take isl_space *space);
  595. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_identity(
  596.         __isl_take isl_space *space);
  597. __isl_export
  598. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_domain_map(
  599.         __isl_take isl_space *space);
  600. __isl_export
  601. __isl_give isl_pw_multi_aff *isl_space_domain_map_pw_multi_aff(
  602.         __isl_take isl_space *space);
  603. __isl_export
  604. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_map(
  605.         __isl_take isl_space *space);
  606. __isl_export
  607. __isl_give isl_pw_multi_aff *isl_space_range_map_pw_multi_aff(
  608.         __isl_take isl_space *space);
  609. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_project_out_map(
  610.         __isl_take isl_space *space, enum isl_dim_type type,
  611.         unsigned first, unsigned n);
  612. __isl_export
  613. __isl_give isl_pw_multi_aff *isl_multi_aff_to_pw_multi_aff(
  614.         __isl_take isl_multi_aff *ma);
  615. __isl_constructor
  616. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_aff(
  617.         __isl_take isl_multi_aff *ma);
  618. __isl_constructor
  619. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_pw_aff(
  620.         __isl_take isl_pw_aff *pa);
  621. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(__isl_take isl_set *set,
  622.         __isl_take isl_multi_aff *maff);
  623. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_copy(
  624.         __isl_keep isl_pw_multi_aff *pma);
  625. __isl_null isl_pw_multi_aff *isl_pw_multi_aff_free(
  626.         __isl_take isl_pw_multi_aff *pma);
  627.  
  628. isl_size isl_pw_multi_aff_dim(__isl_keep isl_pw_multi_aff *pma,
  629.         enum isl_dim_type type);
  630. __isl_export
  631. isl_bool isl_pw_multi_aff_involves_locals(__isl_keep isl_pw_multi_aff *pma);
  632. isl_bool isl_pw_multi_aff_involves_param_id(__isl_keep isl_pw_multi_aff *pma,
  633.         __isl_keep isl_id *id);
  634. isl_bool isl_pw_multi_aff_involves_dims(__isl_keep isl_pw_multi_aff *pma,
  635.         enum isl_dim_type type, unsigned first, unsigned n);
  636. __isl_export
  637. __isl_give isl_pw_aff *isl_pw_multi_aff_get_at(
  638.         __isl_keep isl_pw_multi_aff *pma, int pos);
  639. __isl_give isl_pw_aff *isl_pw_multi_aff_get_pw_aff(
  640.         __isl_keep isl_pw_multi_aff *pma, int pos);
  641. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_pw_aff(
  642.         __isl_take isl_pw_multi_aff *pma, unsigned pos,
  643.         __isl_take isl_pw_aff *pa);
  644.  
  645. isl_ctx *isl_pw_multi_aff_get_ctx(__isl_keep isl_pw_multi_aff *pma);
  646. __isl_give isl_space *isl_pw_multi_aff_get_domain_space(
  647.         __isl_keep isl_pw_multi_aff *pma);
  648. __isl_export
  649. __isl_give isl_space *isl_pw_multi_aff_get_space(
  650.         __isl_keep isl_pw_multi_aff *pma);
  651. isl_bool isl_pw_multi_aff_has_tuple_name(__isl_keep isl_pw_multi_aff *pma,
  652.         enum isl_dim_type type);
  653. const char *isl_pw_multi_aff_get_tuple_name(__isl_keep isl_pw_multi_aff *pma,
  654.         enum isl_dim_type type);
  655. __isl_export
  656. __isl_give isl_id *isl_pw_multi_aff_get_range_tuple_id(
  657.         __isl_keep isl_pw_multi_aff *pma);
  658. __isl_give isl_id *isl_pw_multi_aff_get_tuple_id(
  659.         __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type);
  660. __isl_export
  661. isl_bool isl_pw_multi_aff_has_range_tuple_id(__isl_keep isl_pw_multi_aff *pma);
  662. isl_bool isl_pw_multi_aff_has_tuple_id(__isl_keep isl_pw_multi_aff *pma,
  663.         enum isl_dim_type type);
  664. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_tuple_id(
  665.         __isl_take isl_pw_multi_aff *pma,
  666.         enum isl_dim_type type, __isl_take isl_id *id);
  667. __isl_overload
  668. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_range_tuple_id(
  669.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_id *id);
  670. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_reset_tuple_id(
  671.         __isl_take isl_pw_multi_aff *pma, enum isl_dim_type type);
  672. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_reset_user(
  673.         __isl_take isl_pw_multi_aff *pma);
  674.  
  675. int isl_pw_multi_aff_find_dim_by_name(__isl_keep isl_pw_multi_aff *pma,
  676.         enum isl_dim_type type, const char *name);
  677.  
  678. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_drop_dims(
  679.         __isl_take isl_pw_multi_aff *pma,
  680.         enum isl_dim_type type, unsigned first, unsigned n);
  681.  
  682. __isl_export
  683. __isl_give isl_set *isl_pw_multi_aff_domain(__isl_take isl_pw_multi_aff *pma);
  684.  
  685. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_empty(__isl_take isl_space *space);
  686. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_domain(
  687.         __isl_take isl_set *set);
  688.  
  689. __isl_export
  690. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_multi_val_on_domain(
  691.         __isl_take isl_set *domain, __isl_take isl_multi_val *mv);
  692. __isl_overload
  693. __isl_give isl_pw_multi_aff *isl_set_pw_multi_aff_on_domain_multi_val(
  694.         __isl_take isl_set *domain, __isl_take isl_multi_val *mv);
  695.  
  696. const char *isl_pw_multi_aff_get_dim_name(__isl_keep isl_pw_multi_aff *pma,
  697.         enum isl_dim_type type, unsigned pos);
  698. __isl_give isl_id *isl_pw_multi_aff_get_dim_id(
  699.         __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type,
  700.         unsigned pos);
  701. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_dim_id(
  702.         __isl_take isl_pw_multi_aff *pma,
  703.         enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  704.  
  705. isl_bool isl_pw_multi_aff_involves_nan(__isl_keep isl_pw_multi_aff *pma);
  706. isl_bool isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1,
  707.         __isl_keep isl_pw_multi_aff *pma2);
  708. isl_bool isl_pw_multi_aff_is_equal(__isl_keep isl_pw_multi_aff *pma1,
  709.         __isl_keep isl_pw_multi_aff *pma2);
  710.  
  711. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_fix_si(
  712.         __isl_take isl_pw_multi_aff *pma, enum isl_dim_type type,
  713.         unsigned pos, int value);
  714.  
  715. __isl_export
  716. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
  717.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  718.  
  719. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_neg(
  720.         __isl_take isl_pw_multi_aff *pma);
  721.  
  722. __isl_export
  723. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
  724.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  725. __isl_export
  726. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_sub(
  727.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  728.  
  729. __isl_overload
  730. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add_constant_val(
  731.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
  732. __isl_overload
  733. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add_constant_multi_val(
  734.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
  735. __isl_overload
  736. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_val(
  737.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
  738. __isl_overload
  739. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_down_val(
  740.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
  741. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_multi_val(
  742.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
  743.  
  744. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_lexmin(
  745.         __isl_take isl_pw_multi_aff *pma1,
  746.         __isl_take isl_pw_multi_aff *pma2);
  747. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_lexmax(
  748.         __isl_take isl_pw_multi_aff *pma1,
  749.         __isl_take isl_pw_multi_aff *pma2);
  750.  
  751. __isl_give isl_multi_aff *isl_multi_aff_flatten_domain(
  752.         __isl_take isl_multi_aff *ma);
  753.  
  754. __isl_export
  755. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_product(
  756.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  757. __isl_export
  758. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_flat_range_product(
  759.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  760. __isl_export
  761. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_product(
  762.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  763. __isl_export
  764. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_factor_domain(
  765.         __isl_take isl_pw_multi_aff *pma);
  766. __isl_export
  767. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_factor_range(
  768.         __isl_take isl_pw_multi_aff *pma);
  769.  
  770. __isl_export
  771. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_params(
  772.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  773. __isl_export
  774. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain(
  775.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  776. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain_wrapped_domain(
  777.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  778. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain_wrapped_range(
  779.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  780. __isl_export
  781. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_subtract_domain(
  782.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  783.  
  784. __isl_export
  785. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_insert_domain(
  786.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_space *domain);
  787. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_project_domain_on_params(
  788.         __isl_take isl_pw_multi_aff *pma);
  789.  
  790. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_align_params(
  791.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_space *model);
  792. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_drop_unused_params(
  793.         __isl_take isl_pw_multi_aff *pma);
  794.  
  795. __isl_export
  796. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_coalesce(
  797.         __isl_take isl_pw_multi_aff *pma);
  798. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist_params(
  799.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  800. __isl_export
  801. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist(
  802.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  803.  
  804. __isl_overload
  805. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_pullback_multi_aff(
  806.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_aff *ma);
  807. __isl_overload
  808. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_pullback_pw_multi_aff(
  809.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  810. __isl_overload
  811. __isl_give isl_pw_multi_aff *
  812. isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(
  813.         __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  814.  
  815. __isl_export
  816. isl_size isl_pw_multi_aff_n_piece(__isl_keep isl_pw_multi_aff *pma);
  817. __isl_export
  818. isl_stat isl_pw_multi_aff_foreach_piece(__isl_keep isl_pw_multi_aff *pma,
  819.         isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_multi_aff *maff,
  820.                     void *user), void *user);
  821. isl_bool isl_pw_multi_aff_every_piece(__isl_keep isl_pw_multi_aff *pma,
  822.         isl_bool (*test)(__isl_keep isl_set *set, __isl_keep isl_multi_aff *ma,
  823.                 void *user), void *user);
  824. __isl_export
  825. isl_bool isl_pw_multi_aff_isa_multi_aff(__isl_keep isl_pw_multi_aff *pma);
  826. __isl_export
  827. __isl_give isl_multi_aff *isl_pw_multi_aff_as_multi_aff(
  828.         __isl_take isl_pw_multi_aff *pma);
  829.  
  830. __isl_export
  831. __isl_give isl_map *isl_pw_multi_aff_as_map(__isl_take isl_pw_multi_aff *pma);
  832. __isl_give isl_map *isl_map_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
  833. __isl_export
  834. __isl_give isl_set *isl_pw_multi_aff_as_set(__isl_take isl_pw_multi_aff *pma);
  835. __isl_give isl_set *isl_set_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
  836.  
  837. __isl_give char *isl_pw_multi_aff_to_str(__isl_keep isl_pw_multi_aff *pma);
  838. __isl_give isl_printer *isl_printer_print_pw_multi_aff(__isl_take isl_printer *p,
  839.         __isl_keep isl_pw_multi_aff *pma);
  840.  
  841. __isl_export
  842. __isl_give isl_pw_multi_aff *isl_set_as_pw_multi_aff(__isl_take isl_set *set);
  843. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_set(__isl_take isl_set *set);
  844. __isl_export
  845. __isl_give isl_pw_multi_aff *isl_map_as_pw_multi_aff(__isl_take isl_map *map);
  846. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_map(__isl_take isl_map *map);
  847.  
  848. __isl_export
  849. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_bind_domain(
  850.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_id *tuple);
  851. __isl_export
  852. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_bind_domain_wrapped_domain(
  853.         __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_id *tuple);
  854.  
  855. __isl_constructor
  856. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_read_from_str(isl_ctx *ctx,
  857.         const char *str);
  858. void isl_pw_multi_aff_dump(__isl_keep isl_pw_multi_aff *pma);
  859.  
  860.  
  861. __isl_overload
  862. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty_ctx(
  863.         isl_ctx *ctx);
  864. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty_space(
  865.         __isl_take isl_space *space);
  866. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty(
  867.         __isl_take isl_space *space);
  868. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_aff(
  869.         __isl_take isl_aff *aff);
  870. __isl_constructor
  871. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_multi_aff(
  872.         __isl_take isl_multi_aff *ma);
  873. __isl_export
  874. __isl_give isl_union_pw_multi_aff *isl_pw_multi_aff_to_union_pw_multi_aff(
  875.         __isl_take isl_pw_multi_aff *pma);
  876. __isl_constructor
  877. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_pw_multi_aff(
  878.         __isl_take isl_pw_multi_aff *pma);
  879. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_domain(
  880.         __isl_take isl_union_set *uset);
  881. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_multi_val_on_domain(
  882.         __isl_take isl_union_set *domain, __isl_take isl_multi_val *mv);
  883. __isl_give isl_union_pw_aff *isl_union_pw_aff_param_on_domain_id(
  884.         __isl_take isl_union_set *domain, __isl_take isl_id *id);
  885. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_copy(
  886.         __isl_keep isl_union_pw_multi_aff *upma);
  887. __isl_null isl_union_pw_multi_aff *isl_union_pw_multi_aff_free(
  888.         __isl_take isl_union_pw_multi_aff *upma);
  889.  
  890. __isl_give isl_union_pw_multi_aff *isl_union_set_identity_union_pw_multi_aff(
  891.         __isl_take isl_union_set *uset);
  892.  
  893. __isl_give isl_union_pw_aff *isl_union_pw_multi_aff_get_union_pw_aff(
  894.         __isl_keep isl_union_pw_multi_aff *upma, int pos);
  895.  
  896. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add_pw_multi_aff(
  897.         __isl_take isl_union_pw_multi_aff *upma,
  898.         __isl_take isl_pw_multi_aff *pma);
  899.  
  900. isl_ctx *isl_union_pw_multi_aff_get_ctx(
  901.         __isl_keep isl_union_pw_multi_aff *upma);
  902. __isl_export
  903. __isl_give isl_space *isl_union_pw_multi_aff_get_space(
  904.         __isl_keep isl_union_pw_multi_aff *upma);
  905. __isl_export
  906. __isl_give isl_pw_multi_aff_list *isl_union_pw_multi_aff_get_pw_multi_aff_list(
  907.         __isl_keep isl_union_pw_multi_aff *upma);
  908.  
  909. isl_size isl_union_pw_multi_aff_dim(__isl_keep isl_union_pw_multi_aff *upma,
  910.         enum isl_dim_type type);
  911. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_set_dim_name(
  912.         __isl_take isl_union_pw_multi_aff *upma,
  913.         enum isl_dim_type type, unsigned pos, const char *s);
  914.  
  915. int isl_union_pw_multi_aff_find_dim_by_name(
  916.         __isl_keep isl_union_pw_multi_aff *upma, enum isl_dim_type type,
  917.         const char *name);
  918.  
  919. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_drop_dims(
  920.         __isl_take isl_union_pw_multi_aff *upma,
  921.         enum isl_dim_type type, unsigned first, unsigned n);
  922. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_reset_user(
  923.         __isl_take isl_union_pw_multi_aff *upma);
  924.  
  925. __isl_export
  926. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_coalesce(
  927.         __isl_take isl_union_pw_multi_aff *upma);
  928. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist_params(
  929.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_set *context);
  930. __isl_export
  931. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist(
  932.         __isl_take isl_union_pw_multi_aff *upma,
  933.         __isl_take isl_union_set *context);
  934.  
  935. __isl_overload
  936. __isl_give isl_union_pw_multi_aff *
  937. isl_union_pw_multi_aff_pullback_union_pw_multi_aff(
  938.         __isl_take isl_union_pw_multi_aff *upma1,
  939.         __isl_take isl_union_pw_multi_aff *upma2);
  940. __isl_overload
  941. __isl_give isl_union_pw_multi_aff *
  942. isl_union_pw_multi_aff_apply_union_pw_multi_aff(
  943.         __isl_take isl_union_pw_multi_aff *upma1,
  944.         __isl_take isl_union_pw_multi_aff *upma2);
  945. __isl_overload
  946. __isl_give isl_union_pw_multi_aff *
  947. isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(
  948.         __isl_take isl_union_pw_multi_aff *upma1,
  949.         __isl_take isl_union_pw_multi_aff *upma2);
  950.  
  951. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_align_params(
  952.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *model);
  953.  
  954. isl_size isl_union_pw_multi_aff_n_pw_multi_aff(
  955.         __isl_keep isl_union_pw_multi_aff *upma);
  956.  
  957. isl_stat isl_union_pw_multi_aff_foreach_pw_multi_aff(
  958.         __isl_keep isl_union_pw_multi_aff *upma,
  959.         isl_stat (*fn)(__isl_take isl_pw_multi_aff *pma, void *user),
  960.         void *user);
  961. isl_bool isl_union_pw_multi_aff_every_pw_multi_aff(
  962.         __isl_keep isl_union_pw_multi_aff *upma,
  963.         isl_bool (*test)(__isl_keep isl_pw_multi_aff *pma, void *user),
  964.         void *user);
  965. __isl_export
  966. __isl_give isl_pw_multi_aff *isl_union_pw_multi_aff_extract_pw_multi_aff(
  967.         __isl_keep isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
  968. __isl_export
  969. isl_bool isl_union_pw_multi_aff_isa_pw_multi_aff(
  970.         __isl_keep isl_union_pw_multi_aff *upma);
  971. __isl_export
  972. __isl_give isl_pw_multi_aff *isl_union_pw_multi_aff_as_pw_multi_aff(
  973.         __isl_take isl_union_pw_multi_aff *upma);
  974.  
  975. __isl_export
  976. isl_bool isl_union_pw_multi_aff_plain_is_empty(
  977.         __isl_keep isl_union_pw_multi_aff *upma);
  978. __isl_export
  979. isl_bool isl_union_pw_multi_aff_involves_locals(
  980.         __isl_keep isl_union_pw_multi_aff *upma);
  981. isl_bool isl_union_pw_multi_aff_involves_nan(
  982.         __isl_keep isl_union_pw_multi_aff *upma);
  983. isl_bool isl_union_pw_multi_aff_plain_is_equal(
  984.         __isl_keep isl_union_pw_multi_aff *upma1,
  985.         __isl_keep isl_union_pw_multi_aff *upma2);
  986.  
  987. __isl_export
  988. __isl_give isl_union_set *isl_union_pw_multi_aff_domain(
  989.         __isl_take isl_union_pw_multi_aff *upma);
  990.  
  991. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_neg(
  992.         __isl_take isl_union_pw_multi_aff *upma);
  993.  
  994. __isl_export
  995. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add(
  996.         __isl_take isl_union_pw_multi_aff *upma1,
  997.         __isl_take isl_union_pw_multi_aff *upma2);
  998. __isl_export
  999. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_union_add(
  1000.         __isl_take isl_union_pw_multi_aff *upma1,
  1001.         __isl_take isl_union_pw_multi_aff *upma2);
  1002. __isl_export
  1003. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub(
  1004.         __isl_take isl_union_pw_multi_aff *upma1,
  1005.         __isl_take isl_union_pw_multi_aff *upma2);
  1006.  
  1007. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_val(
  1008.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_val *val);
  1009. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_down_val(
  1010.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_val *val);
  1011. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_multi_val(
  1012.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_multi_val *mv);
  1013.  
  1014. __isl_export
  1015. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_product(
  1016.         __isl_take isl_union_pw_multi_aff *upma1,
  1017.         __isl_take isl_union_pw_multi_aff *upma2);
  1018. __isl_export
  1019. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_flat_range_product(
  1020.         __isl_take isl_union_pw_multi_aff *upma1,
  1021.         __isl_take isl_union_pw_multi_aff *upma2);
  1022. __isl_export
  1023. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_factor_domain(
  1024.         __isl_take isl_union_pw_multi_aff *upma);
  1025. __isl_export
  1026. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_factor_range(
  1027.         __isl_take isl_union_pw_multi_aff *upma);
  1028.  
  1029. __isl_export
  1030. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_params(
  1031.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_set *set);
  1032. __isl_overload
  1033. __isl_give isl_union_pw_multi_aff *
  1034. isl_union_pw_multi_aff_intersect_domain_union_set(
  1035.         __isl_take isl_union_pw_multi_aff *upma,
  1036.         __isl_take isl_union_set *uset);
  1037. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_domain(
  1038.         __isl_take isl_union_pw_multi_aff *upma,
  1039.         __isl_take isl_union_set *uset);
  1040. __isl_overload
  1041. __isl_give isl_union_pw_multi_aff *
  1042. isl_union_pw_multi_aff_intersect_domain_space(
  1043.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
  1044. __isl_export
  1045. __isl_give isl_union_pw_multi_aff *
  1046. isl_union_pw_multi_aff_intersect_domain_wrapped_domain(
  1047.         __isl_take isl_union_pw_multi_aff *upma,
  1048.         __isl_take isl_union_set *uset);
  1049. __isl_export
  1050. __isl_give isl_union_pw_multi_aff *
  1051. isl_union_pw_multi_aff_intersect_domain_wrapped_range(
  1052.         __isl_take isl_union_pw_multi_aff *upma,
  1053.         __isl_take isl_union_set *uset);
  1054. __isl_overload
  1055. __isl_give isl_union_pw_multi_aff *
  1056. isl_union_pw_multi_aff_subtract_domain_union_set(
  1057.         __isl_take isl_union_pw_multi_aff *upma,
  1058.         __isl_take isl_union_set *uset);
  1059. __isl_overload
  1060. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain_space(
  1061.         __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
  1062. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain(
  1063.         __isl_take isl_union_pw_multi_aff *upma,
  1064.         __isl_take isl_union_set *uset);
  1065.  
  1066. __isl_export
  1067. __isl_give isl_union_map *isl_union_pw_multi_aff_as_union_map(
  1068.         __isl_take isl_union_pw_multi_aff *upma);
  1069. __isl_overload
  1070. __isl_give isl_union_map *isl_union_map_from_union_pw_multi_aff(
  1071.         __isl_take isl_union_pw_multi_aff *upma);
  1072.  
  1073. __isl_give isl_printer *isl_printer_print_union_pw_multi_aff(
  1074.         __isl_take isl_printer *p, __isl_keep isl_union_pw_multi_aff *upma);
  1075.  
  1076. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_set(
  1077.         __isl_take isl_union_set *uset);
  1078. __isl_export
  1079. __isl_give isl_union_pw_multi_aff *isl_union_map_as_union_pw_multi_aff(
  1080.         __isl_take isl_union_map *umap);
  1081. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_map(
  1082.         __isl_take isl_union_map *umap);
  1083.  
  1084. __isl_constructor
  1085. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_read_from_str(
  1086.         isl_ctx *ctx, const char *str);
  1087. void isl_union_pw_multi_aff_dump(__isl_keep isl_union_pw_multi_aff *upma);
  1088. __isl_give char *isl_union_pw_multi_aff_to_str(
  1089.         __isl_keep isl_union_pw_multi_aff *upma);
  1090.  
  1091. uint32_t isl_multi_pw_aff_get_hash(__isl_keep isl_multi_pw_aff *mpa);
  1092.  
  1093. __isl_constructor
  1094. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_aff(__isl_take isl_aff *aff);
  1095. __isl_export
  1096. __isl_give isl_multi_pw_aff *isl_multi_aff_to_multi_pw_aff(
  1097.         __isl_take isl_multi_aff *ma);
  1098. __isl_constructor
  1099. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_multi_aff(
  1100.         __isl_take isl_multi_aff *ma);
  1101. __isl_constructor
  1102. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_pw_aff(
  1103.         __isl_take isl_pw_aff *pa);
  1104. __isl_export
  1105. __isl_give isl_set *isl_multi_pw_aff_domain(__isl_take isl_multi_pw_aff *mpa);
  1106. __isl_export
  1107. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_intersect_params(
  1108.         __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
  1109. __isl_export
  1110. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_intersect_domain(
  1111.         __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *domain);
  1112.  
  1113. __isl_export
  1114. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_coalesce(
  1115.         __isl_take isl_multi_pw_aff *mpa);
  1116. __isl_export
  1117. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_gist(
  1118.         __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
  1119. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_gist_params(
  1120.         __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
  1121.  
  1122. isl_bool isl_multi_pw_aff_is_cst(__isl_keep isl_multi_pw_aff *mpa);
  1123. isl_bool isl_multi_pw_aff_is_equal(__isl_keep isl_multi_pw_aff *mpa1,
  1124.         __isl_keep isl_multi_pw_aff *mpa2);
  1125.  
  1126. __isl_overload
  1127. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_aff(
  1128.         __isl_take isl_multi_pw_aff *mpa, __isl_take isl_multi_aff *ma);
  1129. __isl_overload
  1130. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_pw_multi_aff(
  1131.         __isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_multi_aff *pma);
  1132. __isl_overload
  1133. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_pw_aff(
  1134.         __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1135.  
  1136. __isl_export
  1137. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_union_add(
  1138.         __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1139.  
  1140. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_move_dims(
  1141.         __isl_take isl_multi_pw_aff *pma,
  1142.         enum isl_dim_type dst_type, unsigned dst_pos,
  1143.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  1144.  
  1145. __isl_export
  1146. isl_bool isl_multi_pw_aff_isa_multi_aff(__isl_keep isl_multi_pw_aff *mpa);
  1147. __isl_export
  1148. __isl_give isl_multi_aff *isl_multi_pw_aff_as_multi_aff(
  1149.         __isl_take isl_multi_pw_aff *mpa);
  1150.  
  1151. __isl_export
  1152. __isl_give isl_set *isl_multi_pw_aff_as_set(__isl_take isl_multi_pw_aff *mpa);
  1153. __isl_give isl_set *isl_set_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa);
  1154. __isl_export
  1155. __isl_give isl_map *isl_multi_pw_aff_as_map(__isl_take isl_multi_pw_aff *mpa);
  1156. __isl_give isl_map *isl_map_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa);
  1157. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_pw_aff(
  1158.         __isl_take isl_multi_pw_aff *mpa);
  1159. __isl_export
  1160. __isl_give isl_multi_pw_aff *isl_pw_multi_aff_to_multi_pw_aff(
  1161.         __isl_take isl_pw_multi_aff *pma);
  1162. __isl_constructor
  1163. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_pw_multi_aff(
  1164.         __isl_take isl_pw_multi_aff *pma);
  1165.  
  1166. __isl_give isl_map *isl_multi_pw_aff_eq_map(__isl_take isl_multi_pw_aff *mpa1,
  1167.         __isl_take isl_multi_pw_aff *mpa2);
  1168. __isl_give isl_map *isl_multi_pw_aff_lex_le_map(
  1169.         __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1170. __isl_give isl_map *isl_multi_pw_aff_lex_lt_map(
  1171.         __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1172. __isl_give isl_map *isl_multi_pw_aff_lex_ge_map(
  1173.         __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1174. __isl_give isl_map *isl_multi_pw_aff_lex_gt_map(
  1175.         __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1176.  
  1177. __isl_export
  1178. __isl_give isl_set *isl_multi_pw_aff_bind(__isl_take isl_multi_pw_aff *mpa,
  1179.         __isl_take isl_multi_id *tuple);
  1180.  
  1181. __isl_constructor
  1182. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_read_from_str(isl_ctx *ctx,
  1183.         const char *str);
  1184. __isl_give char *isl_multi_pw_aff_to_str(__isl_keep isl_multi_pw_aff *mpa);
  1185. __isl_give isl_printer *isl_printer_print_multi_pw_aff(
  1186.         __isl_take isl_printer *p, __isl_keep isl_multi_pw_aff *mpa);
  1187. void isl_multi_pw_aff_dump(__isl_keep isl_multi_pw_aff *mpa);
  1188.  
  1189. __isl_give isl_union_pw_aff *isl_union_pw_aff_copy(
  1190.         __isl_keep isl_union_pw_aff *upa);
  1191. __isl_null isl_union_pw_aff *isl_union_pw_aff_free(
  1192.         __isl_take isl_union_pw_aff *upa);
  1193.  
  1194. isl_ctx *isl_union_pw_aff_get_ctx(__isl_keep isl_union_pw_aff *upa);
  1195. __isl_export
  1196. __isl_give isl_space *isl_union_pw_aff_get_space(
  1197.         __isl_keep isl_union_pw_aff *upa);
  1198. __isl_give isl_pw_aff_list *isl_union_pw_aff_get_pw_aff_list(
  1199.         __isl_keep isl_union_pw_aff *upa);
  1200.  
  1201. isl_size isl_union_pw_aff_dim(__isl_keep isl_union_pw_aff *upa,
  1202.         enum isl_dim_type type);
  1203. __isl_give isl_union_pw_aff *isl_union_pw_aff_set_dim_name(
  1204.         __isl_take isl_union_pw_aff *upa, enum isl_dim_type type,
  1205.         unsigned pos, const char *s);
  1206.  
  1207. int isl_union_pw_aff_find_dim_by_name(__isl_keep isl_union_pw_aff *upa,
  1208.         enum isl_dim_type type, const char *name);
  1209.  
  1210. __isl_give isl_union_pw_aff *isl_union_pw_aff_drop_dims(
  1211.         __isl_take isl_union_pw_aff *upa,
  1212.         enum isl_dim_type type, unsigned first, unsigned n);
  1213. __isl_give isl_union_pw_aff *isl_union_pw_aff_reset_user(
  1214.         __isl_take isl_union_pw_aff *upa);
  1215.  
  1216. __isl_give isl_union_pw_aff *isl_union_pw_aff_empty_ctx(isl_ctx *ctx);
  1217. __isl_give isl_union_pw_aff *isl_union_pw_aff_empty_space(
  1218.         __isl_take isl_space *space);
  1219. __isl_give isl_union_pw_aff *isl_union_pw_aff_empty(
  1220.         __isl_take isl_space *space);
  1221. __isl_constructor
  1222. __isl_give isl_union_pw_aff *isl_union_pw_aff_from_aff(__isl_take isl_aff *aff);
  1223. __isl_export
  1224. __isl_give isl_union_pw_aff *isl_pw_aff_to_union_pw_aff(
  1225.         __isl_take isl_pw_aff *pa);
  1226. __isl_constructor
  1227. __isl_give isl_union_pw_aff *isl_union_pw_aff_from_pw_aff(
  1228.         __isl_take isl_pw_aff *pa);
  1229. __isl_give isl_union_pw_aff *isl_union_pw_aff_val_on_domain(
  1230.         __isl_take isl_union_set *domain, __isl_take isl_val *v);
  1231. __isl_give isl_union_pw_aff *isl_union_pw_aff_aff_on_domain(
  1232.         __isl_take isl_union_set *domain, __isl_take isl_aff *aff);
  1233. __isl_give isl_union_pw_aff *isl_union_pw_aff_pw_aff_on_domain(
  1234.         __isl_take isl_union_set *domain, __isl_take isl_pw_aff *pa);
  1235. __isl_give isl_union_pw_aff *isl_union_pw_aff_add_pw_aff(
  1236.         __isl_take isl_union_pw_aff *upa, __isl_take isl_pw_aff *pa);
  1237.  
  1238. __isl_constructor
  1239. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_pw_aff(
  1240.         __isl_take isl_union_pw_aff *upa);
  1241.  
  1242. isl_size isl_union_pw_aff_n_pw_aff(__isl_keep isl_union_pw_aff *upa);
  1243.  
  1244. isl_stat isl_union_pw_aff_foreach_pw_aff(__isl_keep isl_union_pw_aff *upa,
  1245.         isl_stat (*fn)(__isl_take isl_pw_aff *pa, void *user), void *user);
  1246. isl_bool isl_union_pw_aff_every_pw_aff(__isl_keep isl_union_pw_aff *upa,
  1247.         isl_bool (*test)(__isl_keep isl_pw_aff *pa, void *user), void *user);
  1248. __isl_give isl_pw_aff *isl_union_pw_aff_extract_pw_aff(
  1249.         __isl_keep isl_union_pw_aff *upa, __isl_take isl_space *space);
  1250.  
  1251. isl_bool isl_union_pw_aff_involves_nan(__isl_keep isl_union_pw_aff *upa);
  1252. isl_bool isl_union_pw_aff_plain_is_equal(__isl_keep isl_union_pw_aff *upa1,
  1253.         __isl_keep isl_union_pw_aff *upa2);
  1254.  
  1255. __isl_export
  1256. __isl_give isl_union_set *isl_union_pw_aff_domain(
  1257.         __isl_take isl_union_pw_aff *upa);
  1258.  
  1259. __isl_give isl_union_pw_aff *isl_union_pw_aff_neg(
  1260.         __isl_take isl_union_pw_aff *upa);
  1261.  
  1262. __isl_export
  1263. __isl_give isl_union_pw_aff *isl_union_pw_aff_add(
  1264.         __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
  1265. __isl_export
  1266. __isl_give isl_union_pw_aff *isl_union_pw_aff_union_add(
  1267.         __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
  1268. __isl_export
  1269. __isl_give isl_union_pw_aff *isl_union_pw_aff_sub(
  1270.         __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
  1271.  
  1272. __isl_export
  1273. __isl_give isl_union_pw_aff *isl_union_pw_aff_coalesce(
  1274.         __isl_take isl_union_pw_aff *upa);
  1275. __isl_export
  1276. __isl_give isl_union_pw_aff *isl_union_pw_aff_gist(
  1277.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *context);
  1278. __isl_give isl_union_pw_aff *isl_union_pw_aff_gist_params(
  1279.         __isl_take isl_union_pw_aff *upa, __isl_take isl_set *context);
  1280.  
  1281. __isl_overload
  1282. __isl_give isl_union_pw_aff *isl_union_pw_aff_pullback_union_pw_multi_aff(
  1283.         __isl_take isl_union_pw_aff *upa,
  1284.         __isl_take isl_union_pw_multi_aff *upma);
  1285.  
  1286. __isl_give isl_union_pw_aff *isl_union_pw_aff_floor(
  1287.         __isl_take isl_union_pw_aff *upa);
  1288.  
  1289. __isl_give isl_union_pw_aff *isl_union_pw_aff_scale_val(
  1290.         __isl_take isl_union_pw_aff *upa, __isl_take isl_val *v);
  1291. __isl_give isl_union_pw_aff *isl_union_pw_aff_scale_down_val(
  1292.         __isl_take isl_union_pw_aff *upa, __isl_take isl_val *v);
  1293. __isl_give isl_union_pw_aff *isl_union_pw_aff_mod_val(
  1294.         __isl_take isl_union_pw_aff *upa, __isl_take isl_val *f);
  1295.  
  1296. __isl_give isl_union_pw_aff *isl_union_pw_aff_align_params(
  1297.         __isl_take isl_union_pw_aff *upa, __isl_take isl_space *model);
  1298.  
  1299. __isl_export
  1300. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_params(
  1301.         __isl_take isl_union_pw_aff *upa, __isl_take isl_set *set);
  1302. __isl_overload
  1303. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_space(
  1304.         __isl_take isl_union_pw_aff *upa, __isl_take isl_space *space);
  1305. __isl_overload
  1306. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_union_set(
  1307.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1308. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain(
  1309.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1310. __isl_export
  1311. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_wrapped_domain(
  1312.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1313. __isl_export
  1314. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_wrapped_range(
  1315.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1316. __isl_overload
  1317. __isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain_union_set(
  1318.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1319. __isl_overload
  1320. __isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain_space(
  1321.         __isl_take isl_union_pw_aff *upa, __isl_take isl_space *space);
  1322. __isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain(
  1323.         __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1324.  
  1325. __isl_give isl_union_pw_aff *isl_union_pw_aff_set_dim_name(
  1326.         __isl_take isl_union_pw_aff *upa,
  1327.         enum isl_dim_type type, unsigned pos, const char *s);
  1328.  
  1329. __isl_give isl_union_set *isl_union_pw_aff_zero_union_set(
  1330.         __isl_take isl_union_pw_aff *upa);
  1331.  
  1332. __isl_give isl_union_map *isl_union_map_from_union_pw_aff(
  1333.         __isl_take isl_union_pw_aff *upa);
  1334.  
  1335. __isl_overload
  1336. __isl_give isl_union_set *isl_union_pw_aff_bind_id(
  1337.         __isl_take isl_union_pw_aff *upa, __isl_take isl_id *id);
  1338.  
  1339. __isl_constructor
  1340. __isl_give isl_union_pw_aff *isl_union_pw_aff_read_from_str(isl_ctx *ctx,
  1341.         const char *str);
  1342. __isl_give char *isl_union_pw_aff_to_str(__isl_keep isl_union_pw_aff *upa);
  1343. __isl_give isl_printer *isl_printer_print_union_pw_aff(
  1344.         __isl_take isl_printer *p, __isl_keep isl_union_pw_aff *upa);
  1345. void isl_union_pw_aff_dump(__isl_keep isl_union_pw_aff *upa);
  1346.  
  1347. ISL_DECLARE_MULTI(union_pw_aff)
  1348. ISL_DECLARE_MULTI_ARITH(union_pw_aff)
  1349. ISL_DECLARE_MULTI_ZERO(union_pw_aff)
  1350. ISL_DECLARE_MULTI_NAN(union_pw_aff)
  1351. ISL_DECLARE_MULTI_DROP_DIMS(union_pw_aff)
  1352. ISL_DECLARE_MULTI_DIM_ID(union_pw_aff)
  1353. ISL_DECLARE_MULTI_TUPLE_ID(union_pw_aff)
  1354.  
  1355. __isl_export
  1356. __isl_give isl_multi_union_pw_aff *isl_multi_aff_to_multi_union_pw_aff(
  1357.         __isl_take isl_multi_aff *ma);
  1358. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_aff(
  1359.         __isl_take isl_multi_aff *ma);
  1360. __isl_constructor
  1361. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_pw_aff(
  1362.         __isl_take isl_union_pw_aff *upa);
  1363. __isl_constructor
  1364. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_pw_aff(
  1365.         __isl_take isl_multi_pw_aff *mpa);
  1366. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_val_on_domain(
  1367.         __isl_take isl_union_set *domain, __isl_take isl_multi_val *mv);
  1368. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_aff_on_domain(
  1369.         __isl_take isl_union_set *domain, __isl_take isl_multi_aff *ma);
  1370. __isl_give isl_multi_union_pw_aff *
  1371. isl_multi_union_pw_aff_pw_multi_aff_on_domain(__isl_take isl_union_set *domain,
  1372.         __isl_take isl_pw_multi_aff *pma);
  1373.  
  1374. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_floor(
  1375.         __isl_take isl_multi_union_pw_aff *mupa);
  1376.  
  1377. __isl_export
  1378. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_domain(
  1379.         __isl_take isl_multi_union_pw_aff *mupa,
  1380.         __isl_take isl_union_set *uset);
  1381. __isl_export
  1382. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_params(
  1383.         __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *params);
  1384. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_range(
  1385.         __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *set);
  1386.  
  1387. __isl_export
  1388. __isl_give isl_union_set *isl_multi_union_pw_aff_domain(
  1389.         __isl_take isl_multi_union_pw_aff *mupa);
  1390.  
  1391. __isl_export
  1392. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_coalesce(
  1393.         __isl_take isl_multi_union_pw_aff *mupa);
  1394. __isl_export
  1395. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist(
  1396.         __isl_take isl_multi_union_pw_aff *mupa,
  1397.         __isl_take isl_union_set *context);
  1398. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist_params(
  1399.         __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *context);
  1400.  
  1401. __isl_give isl_union_pw_aff *isl_multi_union_pw_aff_apply_aff(
  1402.         __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_aff *aff);
  1403. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_multi_aff(
  1404.         __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_multi_aff *ma);
  1405. __isl_give isl_union_pw_aff *isl_multi_union_pw_aff_apply_pw_aff(
  1406.         __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_aff *pa);
  1407. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_pw_multi_aff(
  1408.         __isl_take isl_multi_union_pw_aff *mupa,
  1409.         __isl_take isl_pw_multi_aff *pma);
  1410.  
  1411. __isl_overload
  1412. __isl_give isl_multi_union_pw_aff *
  1413. isl_multi_union_pw_aff_pullback_union_pw_multi_aff(
  1414.         __isl_take isl_multi_union_pw_aff *mupa,
  1415.         __isl_take isl_union_pw_multi_aff *upma);
  1416.  
  1417. __isl_give isl_union_pw_multi_aff *
  1418. isl_union_pw_multi_aff_from_multi_union_pw_aff(
  1419.         __isl_take isl_multi_union_pw_aff *mupa);
  1420.  
  1421. __isl_export
  1422. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_union_add(
  1423.         __isl_take isl_multi_union_pw_aff *mupa1,
  1424.         __isl_take isl_multi_union_pw_aff *mupa2);
  1425.  
  1426. __isl_export
  1427. __isl_give isl_multi_union_pw_aff *
  1428. isl_union_pw_multi_aff_as_multi_union_pw_aff(
  1429.         __isl_take isl_union_pw_multi_aff *upma);
  1430. __isl_give isl_multi_union_pw_aff *
  1431. isl_multi_union_pw_aff_from_union_pw_multi_aff(
  1432.         __isl_take isl_union_pw_multi_aff *upma);
  1433.  
  1434. __isl_export
  1435. __isl_give isl_multi_union_pw_aff *isl_union_map_as_multi_union_pw_aff(
  1436.         __isl_take isl_union_map *umap);
  1437. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_map(
  1438.         __isl_take isl_union_map *umap);
  1439. __isl_overload
  1440. __isl_give isl_union_map *isl_union_map_from_multi_union_pw_aff(
  1441.         __isl_take isl_multi_union_pw_aff *mupa);
  1442.  
  1443. __isl_give isl_union_set *isl_multi_union_pw_aff_zero_union_set(
  1444.         __isl_take isl_multi_union_pw_aff *mupa);
  1445. __isl_export
  1446. __isl_give isl_union_set *isl_multi_union_pw_aff_bind(
  1447.         __isl_take isl_multi_union_pw_aff *mupa,
  1448.         __isl_take isl_multi_id *tuple);
  1449.  
  1450. __isl_give isl_multi_pw_aff *isl_multi_union_pw_aff_extract_multi_pw_aff(
  1451.         __isl_keep isl_multi_union_pw_aff *mupa, __isl_take isl_space *space);
  1452.  
  1453. __isl_constructor
  1454. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_read_from_str(
  1455.         isl_ctx *ctx, const char *str);
  1456. __isl_give char *isl_multi_union_pw_aff_to_str(
  1457.         __isl_keep isl_multi_union_pw_aff *mupa);
  1458. __isl_give isl_printer *isl_printer_print_multi_union_pw_aff(
  1459.         __isl_take isl_printer *p, __isl_keep isl_multi_union_pw_aff *mupa);
  1460. void isl_multi_union_pw_aff_dump(__isl_keep isl_multi_union_pw_aff *mupa);
  1461.  
  1462. ISL_DECLARE_EXPORTED_LIST_FN(aff)
  1463. ISL_DECLARE_EXPORTED_LIST_FN_READ(aff)
  1464. ISL_DECLARE_EXPORTED_LIST_FN(pw_aff)
  1465. ISL_DECLARE_EXPORTED_LIST_FN_READ(pw_aff)
  1466. ISL_DECLARE_EXPORTED_LIST_FN(pw_multi_aff)
  1467. ISL_DECLARE_EXPORTED_LIST_FN_READ(pw_multi_aff)
  1468. ISL_DECLARE_EXPORTED_LIST_FN(union_pw_aff)
  1469. ISL_DECLARE_EXPORTED_LIST_FN_READ(union_pw_aff)
  1470. ISL_DECLARE_LIST_FN(union_pw_multi_aff)
  1471.  
  1472. #if defined(__cplusplus)
  1473. }
  1474. #endif
  1475.  
  1476. #endif
  1477.