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