Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

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

  1. /*
  2.  * Copyright 2008-2009 Katholieke Universiteit Leuven
  3.  *
  4.  * Use of this software is governed by the MIT license
  5.  *
  6.  * Written by Sven Verdoolaege, K.U.Leuven, Departement
  7.  * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
  8.  */
  9.  
  10. #ifndef ISL_SET_H
  11. #define ISL_SET_H
  12.  
  13. #include <isl/id_type.h>
  14. #include <isl/map_type.h>
  15. #include <isl/aff_type.h>
  16. #include <isl/list.h>
  17. #include <isl/mat.h>
  18. #include <isl/point.h>
  19. #include <isl/local_space.h>
  20. #include <isl/val_type.h>
  21. #include <isl/stdint.h>
  22. #include <isl/stride_info.h>
  23. #include <isl/fixed_box.h>
  24.  
  25. #if defined(__cplusplus)
  26. extern "C" {
  27. #endif
  28.  
  29. isl_size isl_basic_set_n_dim(__isl_keep isl_basic_set *bset);
  30. isl_size isl_basic_set_n_param(__isl_keep isl_basic_set *bset);
  31. isl_size isl_basic_set_total_dim(__isl_keep const isl_basic_set *bset);
  32. isl_size isl_basic_set_dim(__isl_keep isl_basic_set *bset,
  33.                                 enum isl_dim_type type);
  34.  
  35. isl_size isl_set_n_dim(__isl_keep isl_set *set);
  36. isl_size isl_set_n_param(__isl_keep isl_set *set);
  37. __isl_export
  38. isl_size isl_set_tuple_dim(__isl_keep isl_set *set);
  39. isl_size isl_set_dim(__isl_keep isl_set *set, enum isl_dim_type type);
  40.  
  41. isl_ctx *isl_basic_set_get_ctx(__isl_keep isl_basic_set *bset);
  42. isl_ctx *isl_set_get_ctx(__isl_keep isl_set *set);
  43. __isl_give isl_space *isl_basic_set_get_space(__isl_keep isl_basic_set *bset);
  44. __isl_export
  45. __isl_give isl_space *isl_set_get_space(__isl_keep isl_set *set);
  46. __isl_give isl_set *isl_set_reset_space(__isl_take isl_set *set,
  47.         __isl_take isl_space *space);
  48.  
  49. __isl_give isl_aff *isl_basic_set_get_div(__isl_keep isl_basic_set *bset,
  50.         int pos);
  51.  
  52. __isl_give isl_local_space *isl_basic_set_get_local_space(
  53.         __isl_keep isl_basic_set *bset);
  54.  
  55. const char *isl_basic_set_get_tuple_name(__isl_keep isl_basic_set *bset);
  56. isl_bool isl_set_has_tuple_name(__isl_keep isl_set *set);
  57. const char *isl_set_get_tuple_name(__isl_keep isl_set *set);
  58. __isl_give isl_basic_set *isl_basic_set_set_tuple_name(
  59.         __isl_take isl_basic_set *set, const char *s);
  60. __isl_give isl_set *isl_set_set_tuple_name(__isl_take isl_set *set,
  61.         const char *s);
  62. const char *isl_basic_set_get_dim_name(__isl_keep isl_basic_set *bset,
  63.         enum isl_dim_type type, unsigned pos);
  64. __isl_give isl_basic_set *isl_basic_set_set_dim_name(
  65.         __isl_take isl_basic_set *bset,
  66.         enum isl_dim_type type, unsigned pos, const char *s);
  67. isl_bool isl_set_has_dim_name(__isl_keep isl_set *set,
  68.         enum isl_dim_type type, unsigned pos);
  69. const char *isl_set_get_dim_name(__isl_keep isl_set *set,
  70.         enum isl_dim_type type, unsigned pos);
  71. __isl_give isl_set *isl_set_set_dim_name(__isl_take isl_set *set,
  72.         enum isl_dim_type type, unsigned pos, const char *s);
  73.  
  74. __isl_give isl_id *isl_basic_set_get_dim_id(__isl_keep isl_basic_set *bset,
  75.         enum isl_dim_type type, unsigned pos);
  76. __isl_give isl_basic_set *isl_basic_set_set_tuple_id(
  77.         __isl_take isl_basic_set *bset, __isl_take isl_id *id);
  78. __isl_give isl_set *isl_set_set_dim_id(__isl_take isl_set *set,
  79.         enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  80. isl_bool isl_set_has_dim_id(__isl_keep isl_set *set,
  81.         enum isl_dim_type type, unsigned pos);
  82. __isl_give isl_id *isl_set_get_dim_id(__isl_keep isl_set *set,
  83.         enum isl_dim_type type, unsigned pos);
  84. __isl_give isl_set *isl_set_set_tuple_id(__isl_take isl_set *set,
  85.         __isl_take isl_id *id);
  86. __isl_give isl_set *isl_set_reset_tuple_id(__isl_take isl_set *set);
  87. isl_bool isl_set_has_tuple_id(__isl_keep isl_set *set);
  88. __isl_give isl_id *isl_set_get_tuple_id(__isl_keep isl_set *set);
  89. __isl_give isl_set *isl_set_reset_user(__isl_take isl_set *set);
  90.  
  91. int isl_set_find_dim_by_id(__isl_keep isl_set *set, enum isl_dim_type type,
  92.         __isl_keep isl_id *id);
  93. int isl_set_find_dim_by_name(__isl_keep isl_set *set, enum isl_dim_type type,
  94.         const char *name);
  95.  
  96. int isl_basic_set_is_rational(__isl_keep isl_basic_set *bset);
  97.  
  98. __isl_null isl_basic_set *isl_basic_set_free(__isl_take isl_basic_set *bset);
  99. __isl_give isl_basic_set *isl_basic_set_copy(__isl_keep isl_basic_set *bset);
  100. __isl_give isl_basic_set *isl_basic_set_empty(__isl_take isl_space *space);
  101. __isl_give isl_basic_set *isl_basic_set_universe(__isl_take isl_space *space);
  102. __isl_give isl_basic_set *isl_basic_set_nat_universe(
  103.         __isl_take isl_space *space);
  104. __isl_give isl_basic_set *isl_basic_set_positive_orthant(
  105.         __isl_take isl_space *space);
  106. void isl_basic_set_print_internal(__isl_keep isl_basic_set *bset,
  107.                                 FILE *out, int indent);
  108. __isl_export
  109. __isl_give isl_basic_set *isl_basic_set_intersect(
  110.                 __isl_take isl_basic_set *bset1,
  111.                 __isl_take isl_basic_set *bset2);
  112. __isl_export
  113. __isl_give isl_basic_set *isl_basic_set_intersect_params(
  114.         __isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2);
  115. __isl_export
  116. __isl_give isl_basic_set *isl_basic_set_apply(
  117.                 __isl_take isl_basic_set *bset,
  118.                 __isl_take isl_basic_map *bmap);
  119. __isl_give isl_basic_set *isl_basic_set_preimage_multi_aff(
  120.         __isl_take isl_basic_set *bset, __isl_take isl_multi_aff *ma);
  121. __isl_export
  122. __isl_give isl_basic_set *isl_basic_set_affine_hull(
  123.                 __isl_take isl_basic_set *bset);
  124. __isl_give isl_basic_set *isl_basic_set_remove_dims(
  125.         __isl_take isl_basic_set *bset,
  126.         enum isl_dim_type type, unsigned first, unsigned n);
  127. __isl_export
  128. __isl_give isl_basic_set *isl_basic_set_sample(__isl_take isl_basic_set *bset);
  129. __isl_export
  130. __isl_give isl_basic_set *isl_basic_set_detect_equalities(
  131.                                                 __isl_take isl_basic_set *bset);
  132. __isl_give isl_basic_set *isl_basic_set_remove_redundancies(
  133.         __isl_take isl_basic_set *bset);
  134. __isl_give isl_set *isl_set_remove_redundancies(__isl_take isl_set *set);
  135. __isl_give isl_basic_set *isl_basic_set_list_intersect(
  136.         __isl_take struct isl_basic_set_list *list);
  137.  
  138. __isl_give isl_set *isl_set_list_union(__isl_take isl_set_list *list);
  139.  
  140. __isl_give isl_basic_set *isl_basic_set_read_from_file(isl_ctx *ctx,
  141.         FILE *input);
  142. __isl_constructor
  143. __isl_give isl_basic_set *isl_basic_set_read_from_str(isl_ctx *ctx,
  144.         const char *str);
  145. __isl_give isl_set *isl_set_read_from_file(isl_ctx *ctx, FILE *input);
  146. __isl_constructor
  147. __isl_give isl_set *isl_set_read_from_str(isl_ctx *ctx, const char *str);
  148. void isl_basic_set_dump(__isl_keep isl_basic_set *bset);
  149. void isl_set_dump(__isl_keep isl_set *set);
  150. __isl_give isl_printer *isl_printer_print_basic_set(
  151.         __isl_take isl_printer *printer, __isl_keep isl_basic_set *bset);
  152. __isl_give isl_printer *isl_printer_print_set(__isl_take isl_printer *printer,
  153.         __isl_keep isl_set *map);
  154. __isl_give isl_basic_set *isl_basic_set_fix_si(__isl_take isl_basic_set *bset,
  155.                 enum isl_dim_type type, unsigned pos, int value);
  156. __isl_give isl_basic_set *isl_basic_set_fix_val(__isl_take isl_basic_set *bset,
  157.         enum isl_dim_type type, unsigned pos, __isl_take isl_val *v);
  158. __isl_give isl_set *isl_set_fix_si(__isl_take isl_set *set,
  159.                 enum isl_dim_type type, unsigned pos, int value);
  160. __isl_give isl_set *isl_set_lower_bound_si(__isl_take isl_set *set,
  161.                 enum isl_dim_type type, unsigned pos, int value);
  162. __isl_give isl_basic_set *isl_basic_set_lower_bound_val(
  163.         __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos,
  164.         __isl_take isl_val *value);
  165. __isl_give isl_set *isl_set_lower_bound_val(__isl_take isl_set *set,
  166.         enum isl_dim_type type, unsigned pos, __isl_take isl_val *value);
  167. __isl_give isl_set *isl_set_upper_bound_si(__isl_take isl_set *set,
  168.         enum isl_dim_type type, unsigned pos, int value);
  169. __isl_give isl_basic_set *isl_basic_set_upper_bound_val(
  170.         __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos,
  171.         __isl_take isl_val *value);
  172. __isl_give isl_set *isl_set_upper_bound_val(__isl_take isl_set *set,
  173.         enum isl_dim_type type, unsigned pos, __isl_take isl_val *value);
  174. __isl_overload
  175. __isl_give isl_set *isl_set_lower_bound_multi_val(__isl_take isl_set *set,
  176.         __isl_take isl_multi_val *lower);
  177. __isl_overload
  178. __isl_give isl_set *isl_set_upper_bound_multi_val(__isl_take isl_set *set,
  179.         __isl_take isl_multi_val *upper);
  180. __isl_overload
  181. __isl_give isl_set *isl_set_lower_bound_multi_pw_aff(__isl_take isl_set *set,
  182.         __isl_take isl_multi_pw_aff *lower);
  183. __isl_overload
  184. __isl_give isl_set *isl_set_upper_bound_multi_pw_aff(__isl_take isl_set *set,
  185.         __isl_take isl_multi_pw_aff *upper);
  186.  
  187. __isl_give isl_set *isl_set_equate(__isl_take isl_set *set,
  188.         enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2);
  189.  
  190. __isl_export
  191. isl_bool isl_basic_set_is_equal(__isl_keep isl_basic_set *bset1,
  192.         __isl_keep isl_basic_set *bset2);
  193. isl_bool isl_basic_set_is_disjoint(__isl_keep isl_basic_set *bset1,
  194.         __isl_keep isl_basic_set *bset2);
  195.  
  196. __isl_give isl_set *isl_basic_set_partial_lexmin(
  197.                 __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom,
  198.                 __isl_give isl_set **empty);
  199. __isl_give isl_set *isl_basic_set_partial_lexmax(
  200.                 __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom,
  201.                 __isl_give isl_set **empty);
  202. __isl_give isl_set *isl_set_partial_lexmin(
  203.                 __isl_take isl_set *set, __isl_take isl_set *dom,
  204.                 __isl_give isl_set **empty);
  205. __isl_give isl_set *isl_set_partial_lexmax(
  206.                 __isl_take isl_set *set, __isl_take isl_set *dom,
  207.                 __isl_give isl_set **empty);
  208. __isl_export
  209. __isl_give isl_set *isl_basic_set_lexmin(__isl_take isl_basic_set *bset);
  210. __isl_export
  211. __isl_give isl_set *isl_basic_set_lexmax(__isl_take isl_basic_set *bset);
  212. __isl_export
  213. __isl_give isl_set *isl_set_lexmin(__isl_take isl_set *set);
  214. __isl_export
  215. __isl_give isl_set *isl_set_lexmax(__isl_take isl_set *set);
  216. __isl_give isl_pw_multi_aff *isl_basic_set_partial_lexmin_pw_multi_aff(
  217.         __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom,
  218.         __isl_give isl_set **empty);
  219. __isl_give isl_pw_multi_aff *isl_basic_set_partial_lexmax_pw_multi_aff(
  220.         __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom,
  221.         __isl_give isl_set **empty);
  222. __isl_export
  223. __isl_give isl_pw_multi_aff *isl_set_lexmin_pw_multi_aff(
  224.         __isl_take isl_set *set);
  225. __isl_export
  226. __isl_give isl_pw_multi_aff *isl_set_lexmax_pw_multi_aff(
  227.         __isl_take isl_set *set);
  228. __isl_export
  229. __isl_give isl_multi_pw_aff *isl_set_min_multi_pw_aff(__isl_take isl_set *set);
  230. __isl_export
  231. __isl_give isl_multi_pw_aff *isl_set_max_multi_pw_aff(__isl_take isl_set *set);
  232.  
  233. __isl_export
  234. __isl_give isl_set *isl_basic_set_union(
  235.                 __isl_take isl_basic_set *bset1,
  236.                 __isl_take isl_basic_set *bset2);
  237.  
  238. int isl_basic_set_compare_at(__isl_keep isl_basic_set *bset1,
  239.         __isl_keep isl_basic_set *bset2, int pos);
  240. int isl_set_follows_at(__isl_keep isl_set *set1,
  241.         __isl_keep isl_set *set2, int pos);
  242.  
  243. __isl_export
  244. __isl_give isl_basic_set *isl_basic_set_params(__isl_take isl_basic_set *bset);
  245. __isl_give isl_basic_set *isl_basic_set_from_params(
  246.         __isl_take isl_basic_set *bset);
  247. __isl_export
  248. __isl_give isl_set *isl_set_params(__isl_take isl_set *set);
  249. __isl_give isl_set *isl_set_from_params(__isl_take isl_set *set);
  250.  
  251. __isl_export
  252. __isl_give isl_set *isl_set_bind(__isl_take isl_set *set,
  253.         __isl_take isl_multi_id *tuple);
  254. __isl_export
  255. __isl_give isl_set *isl_set_unbind_params(__isl_take isl_set *set,
  256.         __isl_take isl_multi_id *tuple);
  257. __isl_export
  258. __isl_give isl_map *isl_set_unbind_params_insert_domain(
  259.         __isl_take isl_set *set, __isl_take isl_multi_id *domain);
  260.  
  261. isl_stat isl_basic_set_dims_get_sign(__isl_keep isl_basic_set *bset,
  262.         enum isl_dim_type type, unsigned pos, unsigned n, int *signs);
  263.  
  264. isl_bool isl_basic_set_plain_is_universe(__isl_keep isl_basic_set *bset);
  265. isl_bool isl_basic_set_is_universe(__isl_keep isl_basic_set *bset);
  266. isl_bool isl_basic_set_plain_is_empty(__isl_keep isl_basic_set *bset);
  267. __isl_export
  268. isl_bool isl_basic_set_is_empty(__isl_keep isl_basic_set *bset);
  269. isl_bool isl_basic_set_is_bounded(__isl_keep isl_basic_set *bset);
  270. __isl_export
  271. isl_bool isl_basic_set_is_subset(__isl_keep isl_basic_set *bset1,
  272.         __isl_keep isl_basic_set *bset2);
  273. isl_bool isl_basic_set_plain_is_equal(__isl_keep isl_basic_set *bset1,
  274.         __isl_keep isl_basic_set *bset2);
  275.  
  276. __isl_export
  277. __isl_give isl_set *isl_set_empty(__isl_take isl_space *space);
  278. __isl_export
  279. __isl_give isl_set *isl_set_universe(__isl_take isl_space *space);
  280. __isl_export
  281. __isl_give isl_set *isl_space_universe_set(__isl_take isl_space *space);
  282. __isl_give isl_set *isl_set_nat_universe(__isl_take isl_space *space);
  283. __isl_give isl_set *isl_set_copy(__isl_keep isl_set *set);
  284. __isl_null isl_set *isl_set_free(__isl_take isl_set *set);
  285. __isl_export
  286. __isl_give isl_set *isl_basic_set_to_set(__isl_take isl_basic_set *bset);
  287. __isl_constructor
  288. __isl_give isl_set *isl_set_from_basic_set(__isl_take isl_basic_set *bset);
  289. __isl_export
  290. __isl_give isl_basic_set *isl_set_sample(__isl_take isl_set *set);
  291. __isl_export
  292. __isl_give isl_point *isl_basic_set_sample_point(__isl_take isl_basic_set *bset);
  293. __isl_export
  294. __isl_give isl_point *isl_set_sample_point(__isl_take isl_set *set);
  295. __isl_export
  296. __isl_give isl_set *isl_set_detect_equalities(__isl_take isl_set *set);
  297. __isl_export
  298. __isl_give isl_basic_set *isl_set_affine_hull(__isl_take isl_set *set);
  299. __isl_give isl_basic_set *isl_set_convex_hull(__isl_take isl_set *set);
  300. __isl_export
  301. __isl_give isl_basic_set *isl_set_polyhedral_hull(__isl_take isl_set *set);
  302. __isl_give isl_basic_set *isl_set_simple_hull(__isl_take isl_set *set);
  303. __isl_export
  304. __isl_give isl_basic_set *isl_set_unshifted_simple_hull(
  305.         __isl_take isl_set *set);
  306. __isl_give isl_basic_set *isl_set_plain_unshifted_simple_hull(
  307.         __isl_take isl_set *set);
  308. __isl_give isl_basic_set *isl_set_unshifted_simple_hull_from_set_list(
  309.         __isl_take isl_set *set, __isl_take isl_set_list *list);
  310. __isl_give isl_basic_set *isl_set_bounded_simple_hull(__isl_take isl_set *set);
  311.  
  312. __isl_give isl_set *isl_set_union_disjoint(
  313.         __isl_take isl_set *set1, __isl_take isl_set *set2);
  314. __isl_export
  315. __isl_give isl_set *isl_set_union(
  316.                 __isl_take isl_set *set1,
  317.                 __isl_take isl_set *set2);
  318. __isl_export
  319. __isl_give isl_set *isl_set_product(__isl_take isl_set *set1,
  320.         __isl_take isl_set *set2);
  321. __isl_give isl_basic_set *isl_basic_set_flat_product(
  322.         __isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2);
  323. __isl_give isl_set *isl_set_flat_product(__isl_take isl_set *set1,
  324.         __isl_take isl_set *set2);
  325. __isl_export
  326. __isl_give isl_set *isl_set_intersect(
  327.                 __isl_take isl_set *set1,
  328.                 __isl_take isl_set *set2);
  329. __isl_export
  330. __isl_give isl_set *isl_set_intersect_params(__isl_take isl_set *set,
  331.                 __isl_take isl_set *params);
  332. __isl_give isl_set *isl_set_intersect_factor_domain(__isl_take isl_set *set,
  333.         __isl_take isl_set *domain);
  334. __isl_give isl_set *isl_set_intersect_factor_range(__isl_take isl_set *set,
  335.         __isl_take isl_set *range);
  336. __isl_export
  337. __isl_give isl_set *isl_set_subtract(
  338.                 __isl_take isl_set *set1,
  339.                 __isl_take isl_set *set2);
  340. __isl_export
  341. __isl_give isl_set *isl_set_complement(__isl_take isl_set *set);
  342. __isl_export
  343. __isl_give isl_set *isl_set_apply(
  344.                 __isl_take isl_set *set,
  345.                 __isl_take isl_map *map);
  346. __isl_overload
  347. __isl_give isl_set *isl_set_preimage_multi_aff(__isl_take isl_set *set,
  348.         __isl_take isl_multi_aff *ma);
  349. __isl_overload
  350. __isl_give isl_set *isl_set_preimage_pw_multi_aff(__isl_take isl_set *set,
  351.         __isl_take isl_pw_multi_aff *pma);
  352. __isl_overload
  353. __isl_give isl_set *isl_set_preimage_multi_pw_aff(__isl_take isl_set *set,
  354.         __isl_take isl_multi_pw_aff *mpa);
  355. __isl_give isl_set *isl_set_fix_val(__isl_take isl_set *set,
  356.         enum isl_dim_type type, unsigned pos, __isl_take isl_val *v);
  357. __isl_give isl_set *isl_set_fix_dim_si(__isl_take isl_set *set,
  358.                 unsigned dim, int value);
  359. __isl_give isl_basic_set *isl_basic_set_insert_dims(
  360.         __isl_take isl_basic_set *bset,
  361.         enum isl_dim_type type, unsigned pos, unsigned n);
  362. __isl_give isl_set *isl_set_insert_dims(__isl_take isl_set *set,
  363.                 enum isl_dim_type type, unsigned pos, unsigned n);
  364. __isl_give isl_basic_set *isl_basic_set_add_dims(__isl_take isl_basic_set *bset,
  365.                 enum isl_dim_type type, unsigned n);
  366. __isl_give isl_set *isl_set_add_dims(__isl_take isl_set *set,
  367.                 enum isl_dim_type type, unsigned n);
  368. __isl_give isl_basic_set *isl_basic_set_move_dims(__isl_take isl_basic_set *bset,
  369.         enum isl_dim_type dst_type, unsigned dst_pos,
  370.         enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  371. __isl_give isl_set *isl_set_move_dims(__isl_take isl_set *set,
  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_basic_set *isl_basic_set_project_out(
  375.                 __isl_take isl_basic_set *bset,
  376.                 enum isl_dim_type type, unsigned first, unsigned n);
  377. __isl_overload
  378. __isl_give isl_set *isl_set_project_out_param_id(__isl_take isl_set *set,
  379.         __isl_take isl_id *id);
  380. __isl_overload
  381. __isl_give isl_set *isl_set_project_out_param_id_list(__isl_take isl_set *set,
  382.         __isl_take isl_id_list *list);
  383. __isl_give isl_set *isl_set_project_out(__isl_take isl_set *set,
  384.                 enum isl_dim_type type, unsigned first, unsigned n);
  385. __isl_export
  386. __isl_give isl_set *isl_set_project_out_all_params(__isl_take isl_set *set);
  387. __isl_give isl_map *isl_set_project_onto_map(__isl_take isl_set *set,
  388.         enum isl_dim_type type, unsigned first, unsigned n);
  389. __isl_give isl_basic_set *isl_basic_set_remove_divs(
  390.         __isl_take isl_basic_set *bset);
  391. __isl_give isl_basic_set *isl_basic_set_eliminate(
  392.         __isl_take isl_basic_set *bset,
  393.         enum isl_dim_type type, unsigned first, unsigned n);
  394. __isl_give isl_set *isl_set_eliminate(__isl_take isl_set *set,
  395.         enum isl_dim_type type, unsigned first, unsigned n);
  396. __isl_give isl_set *isl_set_eliminate_dims(__isl_take isl_set *set,
  397.                 unsigned first, unsigned n);
  398. __isl_give isl_set *isl_set_remove_dims(__isl_take isl_set *bset,
  399.         enum isl_dim_type type, unsigned first, unsigned n);
  400. __isl_give isl_basic_set *isl_basic_set_remove_divs_involving_dims(
  401.         __isl_take isl_basic_set *bset,
  402.         enum isl_dim_type type, unsigned first, unsigned n);
  403. __isl_give isl_set *isl_set_remove_divs_involving_dims(__isl_take isl_set *set,
  404.         enum isl_dim_type type, unsigned first, unsigned n);
  405. __isl_give isl_basic_set *isl_basic_set_remove_unknown_divs(
  406.         __isl_take isl_basic_set *bset);
  407. __isl_give isl_set *isl_set_remove_unknown_divs(__isl_take isl_set *set);
  408. __isl_give isl_set *isl_set_remove_divs(__isl_take isl_set *set);
  409. __isl_give isl_set *isl_set_split_dims(__isl_take isl_set *set,
  410.         enum isl_dim_type type, unsigned first, unsigned n);
  411.  
  412. __isl_give isl_basic_set *isl_basic_set_drop_constraints_involving_dims(
  413.         __isl_take isl_basic_set *bset,
  414.         enum isl_dim_type type, unsigned first, unsigned n);
  415. __isl_give isl_basic_set *isl_basic_set_drop_constraints_not_involving_dims(
  416.         __isl_take isl_basic_set *bset,
  417.         enum isl_dim_type type, unsigned first, unsigned n);
  418. __isl_give isl_set *isl_set_drop_constraints_involving_dims(
  419.         __isl_take isl_set *set,
  420.         enum isl_dim_type type, unsigned first, unsigned n);
  421. __isl_give isl_set *isl_set_drop_constraints_not_involving_dims(
  422.         __isl_take isl_set *set,
  423.         enum isl_dim_type type, unsigned first, unsigned n);
  424.  
  425. __isl_export
  426. isl_bool isl_set_involves_locals(__isl_keep isl_set *set);
  427.  
  428. isl_bool isl_basic_set_involves_dims(__isl_keep isl_basic_set *bset,
  429.         enum isl_dim_type type, unsigned first, unsigned n);
  430. isl_bool isl_set_involves_dims(__isl_keep isl_set *set,
  431.         enum isl_dim_type type, unsigned first, unsigned n);
  432.  
  433. void isl_set_print_internal(__isl_keep isl_set *set, FILE *out, int indent);
  434. isl_bool isl_set_plain_is_empty(__isl_keep isl_set *set);
  435. isl_bool isl_set_plain_is_universe(__isl_keep isl_set *set);
  436. isl_bool isl_set_is_params(__isl_keep isl_set *set);
  437. __isl_export
  438. isl_bool isl_set_is_empty(__isl_keep isl_set *set);
  439. isl_bool isl_set_is_bounded(__isl_keep isl_set *set);
  440. __isl_export
  441. isl_bool isl_set_is_subset(__isl_keep isl_set *set1, __isl_keep isl_set *set2);
  442. __isl_export
  443. isl_bool isl_set_is_strict_subset(__isl_keep isl_set *set1,
  444.         __isl_keep isl_set *set2);
  445. __isl_export
  446. isl_bool isl_set_is_equal(__isl_keep isl_set *set1, __isl_keep isl_set *set2);
  447. __isl_export
  448. isl_bool isl_set_is_disjoint(__isl_keep isl_set *set1,
  449.         __isl_keep isl_set *set2);
  450. __isl_export
  451. isl_bool isl_set_is_singleton(__isl_keep isl_set *set);
  452. isl_bool isl_set_is_box(__isl_keep isl_set *set);
  453. isl_bool isl_set_has_equal_space(__isl_keep isl_set *set1,
  454.         __isl_keep isl_set *set2);
  455.  
  456. __isl_give isl_set *isl_set_sum(__isl_take isl_set *set1,
  457.         __isl_take isl_set *set2);
  458. __isl_give isl_basic_set *isl_basic_set_neg(__isl_take isl_basic_set *bset);
  459. __isl_give isl_set *isl_set_neg(__isl_take isl_set *set);
  460.  
  461. __isl_give isl_set *isl_set_make_disjoint(__isl_take isl_set *set);
  462. __isl_give isl_set *isl_basic_set_compute_divs(__isl_take isl_basic_set *bset);
  463. __isl_give isl_set *isl_set_compute_divs(__isl_take isl_set *set);
  464. ISL_DEPRECATED
  465. __isl_give isl_set *isl_set_align_divs(__isl_take isl_set *set);
  466.  
  467. __isl_export
  468. __isl_give isl_multi_val *isl_set_get_plain_multi_val_if_fixed(
  469.         __isl_keep isl_set *set);
  470. __isl_give isl_val *isl_set_plain_get_val_if_fixed(__isl_keep isl_set *set,
  471.         enum isl_dim_type type, unsigned pos);
  472. isl_bool isl_set_dim_is_bounded(__isl_keep isl_set *set,
  473.         enum isl_dim_type type, unsigned pos);
  474. isl_bool isl_set_dim_has_lower_bound(__isl_keep isl_set *set,
  475.         enum isl_dim_type type, unsigned pos);
  476. isl_bool isl_set_dim_has_upper_bound(__isl_keep isl_set *set,
  477.         enum isl_dim_type type, unsigned pos);
  478. isl_bool isl_set_dim_has_any_lower_bound(__isl_keep isl_set *set,
  479.         enum isl_dim_type type, unsigned pos);
  480. isl_bool isl_set_dim_has_any_upper_bound(__isl_keep isl_set *set,
  481.         enum isl_dim_type type, unsigned pos);
  482.  
  483. __isl_export
  484. __isl_give isl_basic_set *isl_basic_set_gist(__isl_take isl_basic_set *bset,
  485.                                             __isl_take isl_basic_set *context);
  486. __isl_give isl_set *isl_set_gist_basic_set(__isl_take isl_set *set,
  487.         __isl_take isl_basic_set *context);
  488. __isl_export
  489. __isl_give isl_set *isl_set_gist(__isl_take isl_set *set,
  490.         __isl_take isl_set *context);
  491. __isl_give isl_set *isl_set_gist_params(__isl_take isl_set *set,
  492.         __isl_take isl_set *context);
  493. isl_stat isl_set_dim_residue_class_val(__isl_keep isl_set *set,
  494.         int pos, __isl_give isl_val **modulo, __isl_give isl_val **residue);
  495.  
  496. __isl_give isl_stride_info *isl_set_get_stride_info(__isl_keep isl_set *set,
  497.         int pos);
  498. __isl_export
  499. __isl_give isl_val *isl_set_get_stride(__isl_keep isl_set *set, int pos);
  500. __isl_export
  501. __isl_give isl_fixed_box *isl_set_get_simple_fixed_box_hull(
  502.         __isl_keep isl_set *set);
  503.  
  504. __isl_export
  505. __isl_give isl_set *isl_set_coalesce(__isl_take isl_set *set);
  506.  
  507. int isl_set_plain_cmp(__isl_keep isl_set *set1, __isl_keep isl_set *set2);
  508. isl_bool isl_set_plain_is_equal(__isl_keep isl_set *set1,
  509.         __isl_keep isl_set *set2);
  510. isl_bool isl_set_plain_is_disjoint(__isl_keep isl_set *set1,
  511.         __isl_keep isl_set *set2);
  512.  
  513. uint32_t isl_set_get_hash(__isl_keep isl_set *set);
  514.  
  515. __isl_export
  516. isl_size isl_set_n_basic_set(__isl_keep isl_set *set);
  517. __isl_export
  518. isl_stat isl_set_foreach_basic_set(__isl_keep isl_set *set,
  519.         isl_stat (*fn)(__isl_take isl_basic_set *bset, void *user), void *user);
  520. __isl_give isl_basic_set_list *isl_set_get_basic_set_list(
  521.         __isl_keep isl_set *set);
  522.  
  523. __isl_export
  524. isl_stat isl_set_foreach_point(__isl_keep isl_set *set,
  525.         isl_stat (*fn)(__isl_take isl_point *pnt, void *user), void *user);
  526. __isl_give isl_val *isl_set_count_val(__isl_keep isl_set *set);
  527.  
  528. __isl_constructor
  529. __isl_give isl_basic_set *isl_basic_set_from_point(__isl_take isl_point *pnt);
  530. __isl_export
  531. __isl_give isl_set *isl_point_to_set(__isl_take isl_point *pnt);
  532. __isl_constructor
  533. __isl_give isl_set *isl_set_from_point(__isl_take isl_point *pnt);
  534. __isl_give isl_basic_set *isl_basic_set_box_from_points(
  535.         __isl_take isl_point *pnt1, __isl_take isl_point *pnt2);
  536. __isl_give isl_set *isl_set_box_from_points(__isl_take isl_point *pnt1,
  537.         __isl_take isl_point *pnt2);
  538.  
  539. __isl_give isl_basic_set *isl_basic_set_lift(__isl_take isl_basic_set *bset);
  540. __isl_give isl_set *isl_set_lift(__isl_take isl_set *set);
  541.  
  542. __isl_give isl_map *isl_set_lex_le_set(__isl_take isl_set *set1,
  543.         __isl_take isl_set *set2);
  544. __isl_give isl_map *isl_set_lex_lt_set(__isl_take isl_set *set1,
  545.         __isl_take isl_set *set2);
  546. __isl_give isl_map *isl_set_lex_ge_set(__isl_take isl_set *set1,
  547.         __isl_take isl_set *set2);
  548. __isl_give isl_map *isl_set_lex_gt_set(__isl_take isl_set *set1,
  549.         __isl_take isl_set *set2);
  550.  
  551. int isl_set_size(__isl_keep isl_set *set);
  552.  
  553. __isl_give isl_basic_set *isl_basic_set_align_params(
  554.         __isl_take isl_basic_set *bset, __isl_take isl_space *model);
  555. __isl_give isl_set *isl_set_align_params(__isl_take isl_set *set,
  556.         __isl_take isl_space *model);
  557. __isl_give isl_basic_set *isl_basic_set_drop_unused_params(
  558.         __isl_take isl_basic_set *bset);
  559. __isl_give isl_set *isl_set_drop_unused_params(__isl_take isl_set *set);
  560.  
  561. __isl_give isl_mat *isl_basic_set_equalities_matrix(
  562.         __isl_keep isl_basic_set *bset, enum isl_dim_type c1,
  563.         enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4);
  564. __isl_give isl_mat *isl_basic_set_inequalities_matrix(
  565.         __isl_keep isl_basic_set *bset, enum isl_dim_type c1,
  566.         enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4);
  567. __isl_give isl_basic_set *isl_basic_set_from_constraint_matrices(
  568.         __isl_take isl_space *space,
  569.         __isl_take isl_mat *eq, __isl_take isl_mat *ineq, enum isl_dim_type c1,
  570.         enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4);
  571.  
  572. __isl_give isl_basic_set *isl_basic_set_from_multi_aff(
  573.         __isl_take isl_multi_aff *ma);
  574.  
  575. __isl_export
  576. __isl_give isl_set *isl_multi_aff_as_set(__isl_take isl_multi_aff *ma);
  577. __isl_give isl_set *isl_set_from_multi_aff(__isl_take isl_multi_aff *ma);
  578.  
  579. __isl_give isl_mat *isl_basic_set_reduced_basis(__isl_keep isl_basic_set *bset);
  580.  
  581. __isl_give isl_basic_set *isl_basic_set_coefficients(
  582.         __isl_take isl_basic_set *bset);
  583. __isl_give isl_basic_set_list *isl_basic_set_list_coefficients(
  584.         __isl_take isl_basic_set_list *list);
  585. __isl_give isl_basic_set *isl_set_coefficients(__isl_take isl_set *set);
  586. __isl_give isl_basic_set *isl_basic_set_solutions(
  587.         __isl_take isl_basic_set *bset);
  588. __isl_give isl_basic_set *isl_set_solutions(__isl_take isl_set *set);
  589.  
  590. __isl_give isl_pw_aff *isl_set_dim_max(__isl_take isl_set *set, int pos);
  591. __isl_give isl_pw_aff *isl_set_dim_min(__isl_take isl_set *set, int pos);
  592.  
  593. __isl_give char *isl_basic_set_to_str(__isl_keep isl_basic_set *bset);
  594. __isl_give char *isl_set_to_str(__isl_keep isl_set *set);
  595.  
  596. #if defined(__cplusplus)
  597. }
  598. #endif
  599.  
  600. #endif
  601.