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