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