1 #ifndef ISL_UNION_SET_H 2 #define ISL_UNION_SET_H 3 4 #include <isl/point.h> 5 #include <isl/union_map.h> 6 7 #if defined(__cplusplus) 8 extern "C" { 9 #endif 10 11 isl_size isl_union_set_dim(__isl_keep isl_union_set *uset, 12 enum isl_dim_type type); 13 14 __isl_constructor 15 __isl_give isl_union_set *isl_union_set_from_basic_set( 16 __isl_take isl_basic_set *bset); 17 __isl_export 18 __isl_give isl_union_set *isl_set_to_union_set(__isl_take isl_set *set); 19 __isl_constructor 20 __isl_give isl_union_set *isl_union_set_from_set(__isl_take isl_set *set); 21 __isl_overload 22 __isl_give isl_union_set *isl_union_set_empty_ctx(isl_ctx *ctx); 23 __isl_give isl_union_set *isl_union_set_empty_space( 24 __isl_take isl_space *space); 25 __isl_give isl_union_set *isl_union_set_empty(__isl_take isl_space *space); 26 __isl_give isl_union_set *isl_union_set_copy(__isl_keep isl_union_set *uset); 27 __isl_null isl_union_set *isl_union_set_free(__isl_take isl_union_set *uset); 28 29 isl_ctx *isl_union_set_get_ctx(__isl_keep isl_union_set *uset); 30 __isl_export 31 __isl_give isl_space *isl_union_set_get_space(__isl_keep isl_union_set *uset); 32 33 __isl_give isl_union_set *isl_union_set_reset_user( 34 __isl_take isl_union_set *uset); 35 36 __isl_export 37 __isl_give isl_union_set *isl_union_set_universe( 38 __isl_take isl_union_set *uset); 39 __isl_export 40 __isl_give isl_set *isl_union_set_params(__isl_take isl_union_set *uset); 41 42 __isl_export 43 __isl_give isl_union_set *isl_union_set_detect_equalities( 44 __isl_take isl_union_set *uset); 45 __isl_export 46 __isl_give isl_union_set *isl_union_set_affine_hull( 47 __isl_take isl_union_set *uset); 48 __isl_export 49 __isl_give isl_union_set *isl_union_set_polyhedral_hull( 50 __isl_take isl_union_set *uset); 51 __isl_give isl_union_set *isl_union_set_remove_redundancies( 52 __isl_take isl_union_set *uset); 53 __isl_give isl_union_set *isl_union_set_simple_hull( 54 __isl_take isl_union_set *uset); 55 __isl_export 56 __isl_give isl_union_set *isl_union_set_coalesce( 57 __isl_take isl_union_set *uset); 58 __isl_export 59 __isl_give isl_union_set *isl_union_set_compute_divs( 60 __isl_take isl_union_set *uset); 61 __isl_export 62 __isl_give isl_union_set *isl_union_set_lexmin(__isl_take isl_union_set *uset); 63 __isl_export 64 __isl_give isl_union_set *isl_union_set_lexmax(__isl_take isl_union_set *uset); 65 66 __isl_give isl_union_set *isl_union_set_add_set(__isl_take isl_union_set *uset, 67 __isl_take isl_set *set); 68 __isl_export 69 __isl_give isl_union_set *isl_union_set_union(__isl_take isl_union_set *uset1, 70 __isl_take isl_union_set *uset2); 71 __isl_export 72 __isl_give isl_union_set *isl_union_set_subtract( 73 __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2); 74 __isl_export 75 __isl_give isl_union_set *isl_union_set_intersect( 76 __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2); 77 __isl_export 78 __isl_give isl_union_set *isl_union_set_intersect_params( 79 __isl_take isl_union_set *uset, __isl_take isl_set *set); 80 __isl_give isl_union_set *isl_union_set_product(__isl_take isl_union_set *uset1, 81 __isl_take isl_union_set *uset2); 82 __isl_export 83 __isl_give isl_union_set *isl_union_set_gist(__isl_take isl_union_set *uset, 84 __isl_take isl_union_set *context); 85 __isl_export 86 __isl_give isl_union_set *isl_union_set_gist_params( 87 __isl_take isl_union_set *uset, __isl_take isl_set *set); 88 89 __isl_export 90 __isl_give isl_union_set *isl_union_set_apply( 91 __isl_take isl_union_set *uset, __isl_take isl_union_map *umap); 92 __isl_overload 93 __isl_give isl_union_set *isl_union_set_preimage_multi_aff( 94 __isl_take isl_union_set *uset, __isl_take isl_multi_aff *ma); 95 __isl_overload 96 __isl_give isl_union_set *isl_union_set_preimage_pw_multi_aff( 97 __isl_take isl_union_set *uset, __isl_take isl_pw_multi_aff *pma); 98 __isl_overload 99 __isl_give isl_union_set *isl_union_set_preimage_union_pw_multi_aff( 100 __isl_take isl_union_set *uset, 101 __isl_take isl_union_pw_multi_aff *upma); 102 103 __isl_give isl_union_set *isl_union_set_project_out( 104 __isl_take isl_union_set *uset, 105 enum isl_dim_type type, unsigned first, unsigned n); 106 __isl_export 107 __isl_give isl_union_set *isl_union_set_project_out_all_params( 108 __isl_take isl_union_set *uset); 109 __isl_export 110 __isl_give isl_union_set *isl_union_set_drop_unused_params( 111 __isl_take isl_union_set *uset); 112 __isl_give isl_union_set *isl_union_set_remove_divs( 113 __isl_take isl_union_set *bset); 114 115 isl_bool isl_union_set_is_params(__isl_keep isl_union_set *uset); 116 __isl_export 117 isl_bool isl_union_set_is_empty(__isl_keep isl_union_set *uset); 118 119 __isl_export 120 isl_bool isl_union_set_is_subset(__isl_keep isl_union_set *uset1, 121 __isl_keep isl_union_set *uset2); 122 __isl_export 123 isl_bool isl_union_set_is_equal(__isl_keep isl_union_set *uset1, 124 __isl_keep isl_union_set *uset2); 125 __isl_export 126 isl_bool isl_union_set_is_disjoint(__isl_keep isl_union_set *uset1, 127 __isl_keep isl_union_set *uset2); 128 __isl_export 129 isl_bool isl_union_set_is_strict_subset(__isl_keep isl_union_set *uset1, 130 __isl_keep isl_union_set *uset2); 131 132 uint32_t isl_union_set_get_hash(__isl_keep isl_union_set *uset); 133 134 isl_size isl_union_set_n_set(__isl_keep isl_union_set *uset); 135 __isl_export 136 isl_stat isl_union_set_foreach_set(__isl_keep isl_union_set *uset, 137 isl_stat (*fn)(__isl_take isl_set *set, void *user), void *user); 138 __isl_export 139 isl_bool isl_union_set_every_set(__isl_keep isl_union_set *uset, 140 isl_bool (*test)(__isl_keep isl_set *set, void *user), void *user); 141 __isl_give isl_basic_set_list *isl_union_set_get_basic_set_list( 142 __isl_keep isl_union_set *uset); 143 __isl_export 144 __isl_give isl_set_list *isl_union_set_get_set_list( 145 __isl_keep isl_union_set *uset); 146 isl_bool isl_union_set_contains(__isl_keep isl_union_set *uset, 147 __isl_keep isl_space *space); 148 __isl_export 149 __isl_give isl_set *isl_union_set_extract_set(__isl_keep isl_union_set *uset, 150 __isl_take isl_space *space); 151 __isl_export 152 isl_bool isl_union_set_isa_set(__isl_keep isl_union_set *uset); 153 __isl_export 154 __isl_give isl_set *isl_union_set_as_set(__isl_take isl_union_set *uset); 155 __isl_give isl_set *isl_set_from_union_set(__isl_take isl_union_set *uset); 156 __isl_export 157 isl_stat isl_union_set_foreach_point(__isl_keep isl_union_set *uset, 158 isl_stat (*fn)(__isl_take isl_point *pnt, void *user), void *user); 159 160 __isl_give isl_basic_set *isl_union_set_sample(__isl_take isl_union_set *uset); 161 __isl_export 162 __isl_give isl_point *isl_union_set_sample_point( 163 __isl_take isl_union_set *uset); 164 165 __isl_constructor 166 __isl_give isl_union_set *isl_union_set_from_point(__isl_take isl_point *pnt); 167 168 __isl_give isl_union_set *isl_union_set_lift(__isl_take isl_union_set *uset); 169 170 __isl_give isl_union_map *isl_union_set_lex_lt_union_set( 171 __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2); 172 __isl_give isl_union_map *isl_union_set_lex_le_union_set( 173 __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2); 174 __isl_give isl_union_map *isl_union_set_lex_gt_union_set( 175 __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2); 176 __isl_give isl_union_map *isl_union_set_lex_ge_union_set( 177 __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2); 178 179 __isl_give isl_union_set *isl_union_set_coefficients( 180 __isl_take isl_union_set *bset); 181 __isl_give isl_union_set *isl_union_set_solutions( 182 __isl_take isl_union_set *bset); 183 184 __isl_give isl_union_set *isl_union_set_read_from_file(isl_ctx *ctx, 185 FILE *input); 186 __isl_constructor 187 __isl_give isl_union_set *isl_union_set_read_from_str(isl_ctx *ctx, 188 const char *str); 189 __isl_give char *isl_union_set_to_str(__isl_keep isl_union_set *uset); 190 __isl_give isl_printer *isl_printer_print_union_set(__isl_take isl_printer *p, 191 __isl_keep isl_union_set *uset); 192 void isl_union_set_dump(__isl_keep isl_union_set *uset); 193 194 ISL_DECLARE_EXPORTED_LIST_FN(union_set) 195 ISL_DECLARE_EXPORTED_LIST_FN_READ(union_set) 196 197 __isl_give isl_union_set *isl_union_set_list_union( 198 __isl_take isl_union_set_list *list); 199 200 #if defined(__cplusplus) 201 } 202 #endif 203 204 #endif 205