1 #ifndef ISL_POLYNOMIAL_H 2 #define ISL_POLYNOMIAL_H 3 4 #include <isl/ctx.h> 5 #include <isl/constraint.h> 6 #include <isl/space_type.h> 7 #include <isl/set_type.h> 8 #include <isl/point.h> 9 #include <isl/printer.h> 10 #include <isl/union_set_type.h> 11 #include <isl/aff_type.h> 12 #include <isl/polynomial_type.h> 13 #include <isl/val_type.h> 14 15 #if defined(__cplusplus) 16 extern "C" { 17 #endif 18 19 isl_ctx *isl_qpolynomial_get_ctx(__isl_keep isl_qpolynomial *qp); 20 __isl_give isl_space *isl_qpolynomial_get_domain_space( 21 __isl_keep isl_qpolynomial *qp); 22 __isl_give isl_space *isl_qpolynomial_get_space(__isl_keep isl_qpolynomial *qp); 23 isl_size isl_qpolynomial_dim(__isl_keep isl_qpolynomial *qp, 24 enum isl_dim_type type); 25 isl_bool isl_qpolynomial_involves_dims(__isl_keep isl_qpolynomial *qp, 26 enum isl_dim_type type, unsigned first, unsigned n); 27 28 __isl_give isl_val *isl_qpolynomial_get_constant_val( 29 __isl_keep isl_qpolynomial *qp); 30 31 __isl_give isl_qpolynomial *isl_qpolynomial_set_dim_name( 32 __isl_take isl_qpolynomial *qp, 33 enum isl_dim_type type, unsigned pos, const char *s); 34 35 __isl_give isl_qpolynomial *isl_qpolynomial_zero_on_domain( 36 __isl_take isl_space *domain); 37 __isl_give isl_qpolynomial *isl_qpolynomial_one_on_domain( 38 __isl_take isl_space *domain); 39 __isl_give isl_qpolynomial *isl_qpolynomial_infty_on_domain( 40 __isl_take isl_space *domain); 41 __isl_give isl_qpolynomial *isl_qpolynomial_neginfty_on_domain( 42 __isl_take isl_space *domain); 43 __isl_give isl_qpolynomial *isl_qpolynomial_nan_on_domain( 44 __isl_take isl_space *domain); 45 __isl_give isl_qpolynomial *isl_qpolynomial_val_on_domain( 46 __isl_take isl_space *space, __isl_take isl_val *val); 47 __isl_give isl_qpolynomial *isl_qpolynomial_var_on_domain( 48 __isl_take isl_space *domain, 49 enum isl_dim_type type, unsigned pos); 50 __isl_give isl_qpolynomial *isl_qpolynomial_copy(__isl_keep isl_qpolynomial *qp); 51 __isl_null isl_qpolynomial *isl_qpolynomial_free( 52 __isl_take isl_qpolynomial *qp); 53 54 isl_bool isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1, 55 __isl_keep isl_qpolynomial *qp2); 56 isl_bool isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp); 57 isl_bool isl_qpolynomial_is_nan(__isl_keep isl_qpolynomial *qp); 58 isl_bool isl_qpolynomial_is_infty(__isl_keep isl_qpolynomial *qp); 59 isl_bool isl_qpolynomial_is_neginfty(__isl_keep isl_qpolynomial *qp); 60 int isl_qpolynomial_sgn(__isl_keep isl_qpolynomial *qp); 61 62 __isl_give isl_qpolynomial *isl_qpolynomial_neg(__isl_take isl_qpolynomial *qp); 63 __isl_give isl_qpolynomial *isl_qpolynomial_add(__isl_take isl_qpolynomial *qp1, 64 __isl_take isl_qpolynomial *qp2); 65 __isl_give isl_qpolynomial *isl_qpolynomial_sub(__isl_take isl_qpolynomial *qp1, 66 __isl_take isl_qpolynomial *qp2); 67 __isl_give isl_qpolynomial *isl_qpolynomial_mul(__isl_take isl_qpolynomial *qp1, 68 __isl_take isl_qpolynomial *qp2); 69 __isl_give isl_qpolynomial *isl_qpolynomial_pow(__isl_take isl_qpolynomial *qp, 70 unsigned power); 71 __isl_give isl_qpolynomial *isl_qpolynomial_scale_val( 72 __isl_take isl_qpolynomial *qp, __isl_take isl_val *v); 73 __isl_give isl_qpolynomial *isl_qpolynomial_scale_down_val( 74 __isl_take isl_qpolynomial *qp, __isl_take isl_val *v); 75 76 __isl_give isl_qpolynomial *isl_qpolynomial_domain_reverse( 77 __isl_take isl_qpolynomial *qp); 78 __isl_give isl_qpolynomial *isl_qpolynomial_insert_dims( 79 __isl_take isl_qpolynomial *qp, enum isl_dim_type type, 80 unsigned first, unsigned n); 81 __isl_give isl_qpolynomial *isl_qpolynomial_add_dims( 82 __isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned n); 83 __isl_give isl_qpolynomial *isl_qpolynomial_move_dims( 84 __isl_take isl_qpolynomial *qp, 85 enum isl_dim_type dst_type, unsigned dst_pos, 86 enum isl_dim_type src_type, unsigned src_pos, unsigned n); 87 __isl_give isl_qpolynomial *isl_qpolynomial_project_domain_on_params( 88 __isl_take isl_qpolynomial *qp); 89 __isl_give isl_qpolynomial *isl_qpolynomial_drop_dims( 90 __isl_take isl_qpolynomial *qp, 91 enum isl_dim_type type, unsigned first, unsigned n); 92 93 __isl_give isl_qpolynomial *isl_qpolynomial_substitute( 94 __isl_take isl_qpolynomial *qp, 95 enum isl_dim_type type, unsigned first, unsigned n, 96 __isl_keep isl_qpolynomial **subs); 97 98 isl_stat isl_qpolynomial_as_polynomial_on_domain(__isl_keep isl_qpolynomial *qp, 99 __isl_keep isl_basic_set *bset, 100 isl_stat (*fn)(__isl_take isl_basic_set *bset, 101 __isl_take isl_qpolynomial *poly, void *user), void *user); 102 103 __isl_give isl_qpolynomial *isl_qpolynomial_homogenize( 104 __isl_take isl_qpolynomial *poly); 105 106 __isl_give isl_qpolynomial *isl_qpolynomial_align_params( 107 __isl_take isl_qpolynomial *qp, __isl_take isl_space *model); 108 109 isl_ctx *isl_term_get_ctx(__isl_keep isl_term *term); 110 111 __isl_give isl_term *isl_term_copy(__isl_keep isl_term *term); 112 __isl_null isl_term *isl_term_free(__isl_take isl_term *term); 113 114 isl_size isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type); 115 __isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term); 116 isl_size isl_term_get_exp(__isl_keep isl_term *term, 117 enum isl_dim_type type, unsigned pos); 118 __isl_give isl_aff *isl_term_get_div(__isl_keep isl_term *term, unsigned pos); 119 120 isl_stat isl_qpolynomial_foreach_term(__isl_keep isl_qpolynomial *qp, 121 isl_stat (*fn)(__isl_take isl_term *term, void *user), void *user); 122 123 __isl_give isl_val *isl_qpolynomial_eval(__isl_take isl_qpolynomial *qp, 124 __isl_take isl_point *pnt); 125 126 __isl_give isl_qpolynomial *isl_qpolynomial_gist_params( 127 __isl_take isl_qpolynomial *qp, __isl_take isl_set *context); 128 __isl_give isl_qpolynomial *isl_qpolynomial_gist( 129 __isl_take isl_qpolynomial *qp, __isl_take isl_set *context); 130 131 __isl_give isl_qpolynomial *isl_qpolynomial_from_constraint( 132 __isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos); 133 __isl_give isl_qpolynomial *isl_qpolynomial_from_term(__isl_take isl_term *term); 134 __isl_give isl_qpolynomial *isl_qpolynomial_from_aff(__isl_take isl_aff *aff); 135 __isl_give isl_basic_map *isl_basic_map_from_qpolynomial( 136 __isl_take isl_qpolynomial *qp); 137 138 __isl_give isl_printer *isl_printer_print_qpolynomial( 139 __isl_take isl_printer *p, __isl_keep isl_qpolynomial *qp); 140 void isl_qpolynomial_print(__isl_keep isl_qpolynomial *qp, FILE *out, 141 unsigned output_format); 142 void isl_qpolynomial_dump(__isl_keep isl_qpolynomial *qp); 143 144 isl_ctx *isl_pw_qpolynomial_get_ctx(__isl_keep isl_pw_qpolynomial *pwqp); 145 146 isl_bool isl_pw_qpolynomial_involves_nan(__isl_keep isl_pw_qpolynomial *pwqp); 147 isl_bool isl_pw_qpolynomial_plain_is_equal(__isl_keep isl_pw_qpolynomial *pwqp1, 148 __isl_keep isl_pw_qpolynomial *pwqp2); 149 150 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_zero( 151 __isl_take isl_space *space); 152 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc(__isl_take isl_set *set, 153 __isl_take isl_qpolynomial *qp); 154 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial( 155 __isl_take isl_qpolynomial *qp); 156 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_copy( 157 __isl_keep isl_pw_qpolynomial *pwqp); 158 __isl_null isl_pw_qpolynomial *isl_pw_qpolynomial_free( 159 __isl_take isl_pw_qpolynomial *pwqp); 160 161 isl_bool isl_pw_qpolynomial_is_zero(__isl_keep isl_pw_qpolynomial *pwqp); 162 163 __isl_give isl_space *isl_pw_qpolynomial_get_domain_space( 164 __isl_keep isl_pw_qpolynomial *pwqp); 165 __isl_give isl_space *isl_pw_qpolynomial_get_space( 166 __isl_keep isl_pw_qpolynomial *pwqp); 167 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_domain_space( 168 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_space *space); 169 isl_size isl_pw_qpolynomial_dim(__isl_keep isl_pw_qpolynomial *pwqp, 170 enum isl_dim_type type); 171 isl_bool isl_pw_qpolynomial_involves_param_id( 172 __isl_keep isl_pw_qpolynomial *pwqp, __isl_keep isl_id *id); 173 isl_bool isl_pw_qpolynomial_involves_dims(__isl_keep isl_pw_qpolynomial *pwqp, 174 enum isl_dim_type type, unsigned first, unsigned n); 175 isl_bool isl_pw_qpolynomial_has_equal_space( 176 __isl_keep isl_pw_qpolynomial *pwqp1, 177 __isl_keep isl_pw_qpolynomial *pwqp2); 178 179 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_set_dim_name( 180 __isl_take isl_pw_qpolynomial *pwqp, 181 enum isl_dim_type type, unsigned pos, const char *s); 182 183 int isl_pw_qpolynomial_find_dim_by_name(__isl_keep isl_pw_qpolynomial *pwqp, 184 enum isl_dim_type type, const char *name); 185 186 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_user( 187 __isl_take isl_pw_qpolynomial *pwqp); 188 189 __isl_export 190 __isl_give isl_set *isl_pw_qpolynomial_domain(__isl_take isl_pw_qpolynomial *pwqp); 191 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_domain( 192 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set); 193 __isl_give isl_pw_qpolynomial * 194 isl_pw_qpolynomial_intersect_domain_wrapped_domain( 195 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set); 196 __isl_give isl_pw_qpolynomial * 197 isl_pw_qpolynomial_intersect_domain_wrapped_range( 198 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set); 199 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_params( 200 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set); 201 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_subtract_domain( 202 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set); 203 204 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_project_domain_on_params( 205 __isl_take isl_pw_qpolynomial *pwqp); 206 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_range( 207 __isl_take isl_pw_qpolynomial *pwqp); 208 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_dims( 209 __isl_take isl_pw_qpolynomial *pwqp, 210 enum isl_dim_type type, unsigned first, unsigned n); 211 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_dims( 212 __isl_take isl_pw_qpolynomial *pwqp, 213 enum isl_dim_type type, unsigned first, unsigned n); 214 215 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_unused_params( 216 __isl_take isl_pw_qpolynomial *pwqp); 217 218 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add( 219 __isl_take isl_pw_qpolynomial *pwqp1, 220 __isl_take isl_pw_qpolynomial *pwqp2); 221 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_sub( 222 __isl_take isl_pw_qpolynomial *pwqp1, 223 __isl_take isl_pw_qpolynomial *pwqp2); 224 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_disjoint( 225 __isl_take isl_pw_qpolynomial *pwqp1, 226 __isl_take isl_pw_qpolynomial *pwqp2); 227 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_neg( 228 __isl_take isl_pw_qpolynomial *pwqp); 229 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul( 230 __isl_take isl_pw_qpolynomial *pwqp1, 231 __isl_take isl_pw_qpolynomial *pwqp2); 232 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_val( 233 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v); 234 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_down_val( 235 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v); 236 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_pow( 237 __isl_take isl_pw_qpolynomial *pwqp, unsigned exponent); 238 239 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_domain_reverse( 240 __isl_take isl_pw_qpolynomial *pwqp); 241 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_insert_dims( 242 __isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type, 243 unsigned first, unsigned n); 244 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_dims( 245 __isl_take isl_pw_qpolynomial *pwqp, 246 enum isl_dim_type type, unsigned n); 247 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_move_dims( 248 __isl_take isl_pw_qpolynomial *pwqp, 249 enum isl_dim_type dst_type, unsigned dst_pos, 250 enum isl_dim_type src_type, unsigned src_pos, unsigned n); 251 252 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_fix_val( 253 __isl_take isl_pw_qpolynomial *pwqp, 254 enum isl_dim_type type, unsigned n, __isl_take isl_val *v); 255 256 __isl_export 257 __isl_give isl_val *isl_pw_qpolynomial_eval( 258 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_point *pnt); 259 260 __isl_give isl_val *isl_pw_qpolynomial_max(__isl_take isl_pw_qpolynomial *pwqp); 261 __isl_give isl_val *isl_pw_qpolynomial_min(__isl_take isl_pw_qpolynomial *pwqp); 262 263 isl_size isl_pw_qpolynomial_n_piece(__isl_keep isl_pw_qpolynomial *pwqp); 264 isl_stat isl_pw_qpolynomial_foreach_piece(__isl_keep isl_pw_qpolynomial *pwqp, 265 isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp, 266 void *user), void *user); 267 isl_bool isl_pw_qpolynomial_every_piece(__isl_keep isl_pw_qpolynomial *pwqp, 268 isl_bool (*test)(__isl_keep isl_set *set, 269 __isl_keep isl_qpolynomial *qp, void *user), void *user); 270 isl_stat isl_pw_qpolynomial_foreach_lifted_piece( 271 __isl_keep isl_pw_qpolynomial *pwqp, 272 isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp, 273 void *user), void *user); 274 isl_bool isl_pw_qpolynomial_isa_qpolynomial( 275 __isl_keep isl_pw_qpolynomial *pwqp); 276 __isl_give isl_qpolynomial *isl_pw_qpolynomial_as_qpolynomial( 277 __isl_take isl_pw_qpolynomial *pwqp); 278 279 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_pw_aff( 280 __isl_take isl_pw_aff *pwaff); 281 282 __isl_constructor 283 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_str(isl_ctx *ctx, 284 const char *str); 285 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_file(isl_ctx *ctx, 286 FILE *input); 287 __isl_give char *isl_pw_qpolynomial_to_str(__isl_keep isl_pw_qpolynomial *pwqp); 288 __isl_give isl_printer *isl_printer_print_pw_qpolynomial( 289 __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial *pwqp); 290 void isl_pw_qpolynomial_print(__isl_keep isl_pw_qpolynomial *pwqp, FILE *out, 291 unsigned output_format); 292 void isl_pw_qpolynomial_dump(__isl_keep isl_pw_qpolynomial *pwqp); 293 294 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_coalesce( 295 __isl_take isl_pw_qpolynomial *pwqp); 296 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist( 297 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context); 298 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist_params( 299 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context); 300 301 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_periods( 302 __isl_take isl_pw_qpolynomial *pwqp, int max_periods); 303 304 __isl_give isl_pw_qpolynomial *isl_basic_set_multiplicative_call( 305 __isl_take isl_basic_set *bset, 306 __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset)); 307 308 isl_ctx *isl_qpolynomial_fold_get_ctx(__isl_keep isl_qpolynomial_fold *fold); 309 enum isl_fold isl_qpolynomial_fold_get_type(__isl_keep isl_qpolynomial_fold *fold); 310 311 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_empty(enum isl_fold type, 312 __isl_take isl_space *space); 313 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_alloc( 314 enum isl_fold type, __isl_take isl_qpolynomial *qp); 315 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_copy( 316 __isl_keep isl_qpolynomial_fold *fold); 317 __isl_null isl_qpolynomial_fold *isl_qpolynomial_fold_free( 318 __isl_take isl_qpolynomial_fold *fold); 319 320 isl_bool isl_qpolynomial_fold_is_empty(__isl_keep isl_qpolynomial_fold *fold); 321 isl_bool isl_qpolynomial_fold_is_nan(__isl_keep isl_qpolynomial_fold *fold); 322 isl_bool isl_qpolynomial_fold_plain_is_equal( 323 __isl_keep isl_qpolynomial_fold *fold1, 324 __isl_keep isl_qpolynomial_fold *fold2); 325 326 __isl_give isl_space *isl_qpolynomial_fold_get_domain_space( 327 __isl_keep isl_qpolynomial_fold *fold); 328 __isl_give isl_space *isl_qpolynomial_fold_get_space( 329 __isl_keep isl_qpolynomial_fold *fold); 330 331 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_fold( 332 __isl_take isl_qpolynomial_fold *fold1, 333 __isl_take isl_qpolynomial_fold *fold2); 334 335 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_val( 336 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v); 337 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_down_val( 338 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v); 339 340 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_move_dims( 341 __isl_take isl_qpolynomial_fold *fold, 342 enum isl_dim_type dst_type, unsigned dst_pos, 343 enum isl_dim_type src_type, unsigned src_pos, unsigned n); 344 345 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_substitute( 346 __isl_take isl_qpolynomial_fold *fold, 347 enum isl_dim_type type, unsigned first, unsigned n, 348 __isl_keep isl_qpolynomial **subs); 349 350 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fix_val( 351 __isl_take isl_pw_qpolynomial_fold *pwf, 352 enum isl_dim_type type, unsigned n, __isl_take isl_val *v); 353 354 __isl_give isl_val *isl_qpolynomial_fold_eval( 355 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_point *pnt); 356 357 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist_params( 358 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context); 359 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist( 360 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context); 361 362 isl_stat isl_qpolynomial_fold_foreach_qpolynomial( 363 __isl_keep isl_qpolynomial_fold *fold, 364 isl_stat (*fn)(__isl_take isl_qpolynomial *qp, void *user), void *user); 365 366 __isl_give isl_printer *isl_printer_print_qpolynomial_fold( 367 __isl_take isl_printer *p, __isl_keep isl_qpolynomial_fold *fold); 368 void isl_qpolynomial_fold_print(__isl_keep isl_qpolynomial_fold *fold, FILE *out, 369 unsigned output_format); 370 void isl_qpolynomial_fold_dump(__isl_keep isl_qpolynomial_fold *fold); 371 372 isl_ctx *isl_pw_qpolynomial_fold_get_ctx(__isl_keep isl_pw_qpolynomial_fold *pwf); 373 enum isl_fold isl_pw_qpolynomial_fold_get_type( 374 __isl_keep isl_pw_qpolynomial_fold *pwf); 375 376 isl_bool isl_pw_qpolynomial_fold_involves_nan( 377 __isl_keep isl_pw_qpolynomial_fold *pwf); 378 isl_bool isl_pw_qpolynomial_fold_plain_is_equal( 379 __isl_keep isl_pw_qpolynomial_fold *pwf1, 380 __isl_keep isl_pw_qpolynomial_fold *pwf2); 381 382 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_pw_qpolynomial( 383 enum isl_fold type, __isl_take isl_pw_qpolynomial *pwqp); 384 385 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_alloc( 386 enum isl_fold type, 387 __isl_take isl_set *set, __isl_take isl_qpolynomial_fold *fold); 388 __isl_give isl_pw_qpolynomial_fold * 389 isl_pw_qpolynomial_fold_from_qpolynomial_fold( 390 __isl_take isl_qpolynomial_fold *fold); 391 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_copy( 392 __isl_keep isl_pw_qpolynomial_fold *pwf); 393 __isl_null isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_free( 394 __isl_take isl_pw_qpolynomial_fold *pwf); 395 396 isl_bool isl_pw_qpolynomial_fold_is_zero( 397 __isl_keep isl_pw_qpolynomial_fold *pwf); 398 399 __isl_give isl_space *isl_pw_qpolynomial_fold_get_domain_space( 400 __isl_keep isl_pw_qpolynomial_fold *pwf); 401 __isl_give isl_space *isl_pw_qpolynomial_fold_get_space( 402 __isl_keep isl_pw_qpolynomial_fold *pwf); 403 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_space( 404 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_space *space); 405 isl_size isl_pw_qpolynomial_fold_dim(__isl_keep isl_pw_qpolynomial_fold *pwf, 406 enum isl_dim_type type); 407 isl_bool isl_pw_qpolynomial_fold_involves_param_id( 408 __isl_keep isl_pw_qpolynomial_fold *pwf, __isl_keep isl_id *id); 409 isl_bool isl_pw_qpolynomial_fold_has_equal_space( 410 __isl_keep isl_pw_qpolynomial_fold *pwf1, 411 __isl_keep isl_pw_qpolynomial_fold *pwf2); 412 413 size_t isl_pw_qpolynomial_fold_size(__isl_keep isl_pw_qpolynomial_fold *pwf); 414 415 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_zero( 416 __isl_take isl_space *space, enum isl_fold type); 417 418 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_set_dim_name( 419 __isl_take isl_pw_qpolynomial_fold *pwf, 420 enum isl_dim_type type, unsigned pos, const char *s); 421 422 int isl_pw_qpolynomial_fold_find_dim_by_name( 423 __isl_keep isl_pw_qpolynomial_fold *pwf, 424 enum isl_dim_type type, const char *name); 425 426 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_user( 427 __isl_take isl_pw_qpolynomial_fold *pwf); 428 429 __isl_give isl_set *isl_pw_qpolynomial_fold_domain( 430 __isl_take isl_pw_qpolynomial_fold *pwf); 431 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_domain( 432 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set); 433 __isl_give isl_pw_qpolynomial_fold * 434 isl_pw_qpolynomial_fold_intersect_domain_wrapped_domain( 435 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set); 436 __isl_give isl_pw_qpolynomial_fold * 437 isl_pw_qpolynomial_fold_intersect_domain_wrapped_range( 438 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set); 439 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_params( 440 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set); 441 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_subtract_domain( 442 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set); 443 444 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add( 445 __isl_take isl_pw_qpolynomial_fold *pwf1, 446 __isl_take isl_pw_qpolynomial_fold *pwf2); 447 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fold( 448 __isl_take isl_pw_qpolynomial_fold *pwf1, 449 __isl_take isl_pw_qpolynomial_fold *pwf2); 450 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add_disjoint( 451 __isl_take isl_pw_qpolynomial_fold *pwf1, 452 __isl_take isl_pw_qpolynomial_fold *pwf2); 453 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_val( 454 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v); 455 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_down_val( 456 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v); 457 458 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_project_domain_on_params( 459 __isl_take isl_pw_qpolynomial_fold *pwf); 460 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_range( 461 __isl_take isl_pw_qpolynomial_fold *pwf); 462 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_dims( 463 __isl_take isl_pw_qpolynomial_fold *pwf, 464 enum isl_dim_type type, unsigned first, unsigned n); 465 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_move_dims( 466 __isl_take isl_pw_qpolynomial_fold *pwf, 467 enum isl_dim_type dst_type, unsigned dst_pos, 468 enum isl_dim_type src_type, unsigned src_pos, unsigned n); 469 470 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_unused_params( 471 __isl_take isl_pw_qpolynomial_fold *pwf); 472 473 __isl_give isl_val *isl_pw_qpolynomial_fold_eval( 474 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_point *pnt); 475 476 isl_size isl_pw_qpolynomial_fold_n_piece( 477 __isl_keep isl_pw_qpolynomial_fold *pwf); 478 isl_stat isl_pw_qpolynomial_fold_foreach_piece( 479 __isl_keep isl_pw_qpolynomial_fold *pwf, 480 isl_stat (*fn)(__isl_take isl_set *set, 481 __isl_take isl_qpolynomial_fold *fold, void *user), void *user); 482 isl_bool isl_pw_qpolynomial_fold_every_piece( 483 __isl_keep isl_pw_qpolynomial_fold *pwf, 484 isl_bool (*test)(__isl_keep isl_set *set, 485 __isl_keep isl_qpolynomial_fold *fold, void *user), void *user); 486 isl_stat isl_pw_qpolynomial_fold_foreach_lifted_piece( 487 __isl_keep isl_pw_qpolynomial_fold *pwf, 488 isl_stat (*fn)(__isl_take isl_set *set, 489 __isl_take isl_qpolynomial_fold *fold, void *user), void *user); 490 isl_bool isl_pw_qpolynomial_fold_isa_qpolynomial_fold( 491 __isl_keep isl_pw_qpolynomial_fold *pwf); 492 __isl_give isl_qpolynomial_fold *isl_pw_qpolynomial_fold_as_qpolynomial_fold( 493 __isl_take isl_pw_qpolynomial_fold *pwf); 494 495 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_read_from_str( 496 isl_ctx *ctx, const char *str); 497 __isl_give isl_printer *isl_printer_print_pw_qpolynomial_fold( 498 __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial_fold *pwf); 499 void isl_pw_qpolynomial_fold_print(__isl_keep isl_pw_qpolynomial_fold *pwf, 500 FILE *out, unsigned output_format); 501 void isl_pw_qpolynomial_fold_dump(__isl_keep isl_pw_qpolynomial_fold *pwf); 502 503 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_coalesce( 504 __isl_take isl_pw_qpolynomial_fold *pwf); 505 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist( 506 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context); 507 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist_params( 508 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context); 509 510 __isl_give isl_val *isl_pw_qpolynomial_fold_max( 511 __isl_take isl_pw_qpolynomial_fold *pwf); 512 __isl_give isl_val *isl_pw_qpolynomial_fold_min( 513 __isl_take isl_pw_qpolynomial_fold *pwf); 514 515 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_bound( 516 __isl_take isl_pw_qpolynomial *pwqp, enum isl_fold type, 517 isl_bool *tight); 518 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_bound( 519 __isl_take isl_pw_qpolynomial_fold *pwf, isl_bool *tight); 520 __isl_give isl_pw_qpolynomial_fold *isl_set_apply_pw_qpolynomial_fold( 521 __isl_take isl_set *set, __isl_take isl_pw_qpolynomial_fold *pwf, 522 isl_bool *tight); 523 __isl_give isl_pw_qpolynomial_fold *isl_map_apply_pw_qpolynomial_fold( 524 __isl_take isl_map *map, __isl_take isl_pw_qpolynomial_fold *pwf, 525 isl_bool *tight); 526 527 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_to_polynomial( 528 __isl_take isl_pw_qpolynomial *pwqp, int sign); 529 530 isl_ctx *isl_union_pw_qpolynomial_get_ctx( 531 __isl_keep isl_union_pw_qpolynomial *upwqp); 532 533 isl_size isl_union_pw_qpolynomial_dim( 534 __isl_keep isl_union_pw_qpolynomial *upwqp, enum isl_dim_type type); 535 536 isl_bool isl_union_pw_qpolynomial_involves_nan( 537 __isl_keep isl_union_pw_qpolynomial *upwqp); 538 isl_bool isl_union_pw_qpolynomial_plain_is_equal( 539 __isl_keep isl_union_pw_qpolynomial *upwqp1, 540 __isl_keep isl_union_pw_qpolynomial *upwqp2); 541 542 __isl_give isl_union_pw_qpolynomial *isl_pw_qpolynomial_to_union_pw_qpolynomial( 543 __isl_take isl_pw_qpolynomial *pwqp); 544 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_from_pw_qpolynomial(__isl_take isl_pw_qpolynomial *pwqp); 545 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_ctx( 546 isl_ctx *ctx); 547 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_space( 548 __isl_take isl_space *space); 549 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero( 550 __isl_take isl_space *space); 551 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add_pw_qpolynomial( 552 __isl_take isl_union_pw_qpolynomial *upwqp, 553 __isl_take isl_pw_qpolynomial *pwqp); 554 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_copy( 555 __isl_keep isl_union_pw_qpolynomial *upwqp); 556 __isl_null isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_free( 557 __isl_take isl_union_pw_qpolynomial *upwqp); 558 559 __isl_constructor 560 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_read_from_str( 561 isl_ctx *ctx, const char *str); 562 __isl_give char *isl_union_pw_qpolynomial_to_str( 563 __isl_keep isl_union_pw_qpolynomial *upwqp); 564 565 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_neg( 566 __isl_take isl_union_pw_qpolynomial *upwqp); 567 568 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add( 569 __isl_take isl_union_pw_qpolynomial *upwqp1, 570 __isl_take isl_union_pw_qpolynomial *upwqp2); 571 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sub( 572 __isl_take isl_union_pw_qpolynomial *upwqp1, 573 __isl_take isl_union_pw_qpolynomial *upwqp2); 574 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul( 575 __isl_take isl_union_pw_qpolynomial *upwqp1, 576 __isl_take isl_union_pw_qpolynomial *upwqp2); 577 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_val( 578 __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v); 579 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_down_val( 580 __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v); 581 582 __isl_export 583 __isl_give isl_union_set *isl_union_pw_qpolynomial_domain( 584 __isl_take isl_union_pw_qpolynomial *upwqp); 585 __isl_give isl_union_pw_qpolynomial * 586 isl_union_pw_qpolynomial_intersect_domain_space( 587 __isl_take isl_union_pw_qpolynomial *upwpq, 588 __isl_take isl_space *space); 589 __isl_give isl_union_pw_qpolynomial * 590 isl_union_pw_qpolynomial_intersect_domain_union_set( 591 __isl_take isl_union_pw_qpolynomial *upwpq, 592 __isl_take isl_union_set *uset); 593 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_domain( 594 __isl_take isl_union_pw_qpolynomial *upwpq, 595 __isl_take isl_union_set *uset); 596 __isl_give isl_union_pw_qpolynomial * 597 isl_union_pw_qpolynomial_intersect_domain_wrapped_domain( 598 __isl_take isl_union_pw_qpolynomial *upwpq, 599 __isl_take isl_union_set *uset); 600 __isl_give isl_union_pw_qpolynomial * 601 isl_union_pw_qpolynomial_intersect_domain_wrapped_range( 602 __isl_take isl_union_pw_qpolynomial *upwpq, 603 __isl_take isl_union_set *uset); 604 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_params( 605 __isl_take isl_union_pw_qpolynomial *upwpq, 606 __isl_take isl_set *set); 607 __isl_give isl_union_pw_qpolynomial * 608 isl_union_pw_qpolynomial_subtract_domain_union_set( 609 __isl_take isl_union_pw_qpolynomial *upwpq, 610 __isl_take isl_union_set *uset); 611 __isl_give isl_union_pw_qpolynomial * 612 isl_union_pw_qpolynomial_subtract_domain_space( 613 __isl_take isl_union_pw_qpolynomial *upwpq, 614 __isl_take isl_space *space); 615 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_subtract_domain( 616 __isl_take isl_union_pw_qpolynomial *upwpq, 617 __isl_take isl_union_set *uset); 618 619 __isl_give isl_space *isl_union_pw_qpolynomial_get_space( 620 __isl_keep isl_union_pw_qpolynomial *upwqp); 621 __isl_give isl_pw_qpolynomial_list * 622 isl_union_pw_qpolynomial_get_pw_qpolynomial_list( 623 __isl_keep isl_union_pw_qpolynomial *upwqp); 624 625 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_set_dim_name( 626 __isl_take isl_union_pw_qpolynomial *upwqp, 627 enum isl_dim_type type, unsigned pos, const char *s); 628 629 int isl_union_pw_qpolynomial_find_dim_by_name( 630 __isl_keep isl_union_pw_qpolynomial *upwqp, 631 enum isl_dim_type type, const char *name); 632 633 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_domain_reverse( 634 __isl_take isl_union_pw_qpolynomial *upwqp); 635 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_drop_dims( 636 __isl_take isl_union_pw_qpolynomial *upwqp, 637 enum isl_dim_type type, unsigned first, unsigned n); 638 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_reset_user( 639 __isl_take isl_union_pw_qpolynomial *upwqp); 640 641 __isl_export 642 __isl_give isl_val *isl_union_pw_qpolynomial_eval( 643 __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_point *pnt); 644 645 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_coalesce( 646 __isl_take isl_union_pw_qpolynomial *upwqp); 647 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist( 648 __isl_take isl_union_pw_qpolynomial *upwqp, 649 __isl_take isl_union_set *context); 650 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist_params( 651 __isl_take isl_union_pw_qpolynomial *upwqp, 652 __isl_take isl_set *context); 653 654 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_align_params( 655 __isl_take isl_union_pw_qpolynomial *upwqp, 656 __isl_take isl_space *model); 657 __isl_give isl_union_pw_qpolynomial * 658 isl_union_pw_qpolynomial_drop_unused_params( 659 __isl_take isl_union_pw_qpolynomial *upwqp); 660 661 isl_size isl_union_pw_qpolynomial_n_pw_qpolynomial( 662 __isl_keep isl_union_pw_qpolynomial *upwqp); 663 isl_stat isl_union_pw_qpolynomial_foreach_pw_qpolynomial( 664 __isl_keep isl_union_pw_qpolynomial *upwqp, 665 isl_stat (*fn)(__isl_take isl_pw_qpolynomial *pwqp, void *user), 666 void *user); 667 isl_bool isl_union_pw_qpolynomial_every_pw_qpolynomial( 668 __isl_keep isl_union_pw_qpolynomial *upwqp, 669 isl_bool (*test)(__isl_keep isl_pw_qpolynomial *pwqp, void *user), 670 void *user); 671 __isl_give isl_pw_qpolynomial *isl_union_pw_qpolynomial_extract_pw_qpolynomial( 672 __isl_keep isl_union_pw_qpolynomial *upwqp, 673 __isl_take isl_space *space); 674 675 __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial( 676 __isl_take isl_printer *p, __isl_keep isl_union_pw_qpolynomial *upwqp); 677 678 isl_ctx *isl_union_pw_qpolynomial_fold_get_ctx( 679 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 680 681 isl_size isl_union_pw_qpolynomial_fold_dim( 682 __isl_keep isl_union_pw_qpolynomial_fold *upwf, enum isl_dim_type type); 683 684 isl_bool isl_union_pw_qpolynomial_fold_involves_nan( 685 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 686 isl_bool isl_union_pw_qpolynomial_fold_plain_is_equal( 687 __isl_keep isl_union_pw_qpolynomial_fold *upwf1, 688 __isl_keep isl_union_pw_qpolynomial_fold *upwf2); 689 690 __isl_give isl_union_pw_qpolynomial_fold * 691 isl_pw_qpolynomial_fold_to_union_pw_qpolynomial_fold( 692 __isl_take isl_pw_qpolynomial_fold *pwf); 693 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_from_pw_qpolynomial_fold(__isl_take isl_pw_qpolynomial_fold *pwf); 694 __isl_give isl_union_pw_qpolynomial_fold * 695 isl_union_pw_qpolynomial_fold_zero_ctx(isl_ctx *ctx, enum isl_fold type); 696 __isl_give isl_union_pw_qpolynomial_fold * 697 isl_union_pw_qpolynomial_fold_zero_space(__isl_take isl_space *space, 698 enum isl_fold type); 699 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_zero( 700 __isl_take isl_space *space, enum isl_fold type); 701 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold( 702 __isl_take isl_union_pw_qpolynomial_fold *upwqp, 703 __isl_take isl_pw_qpolynomial_fold *pwqp); 704 __isl_null isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_free( 705 __isl_take isl_union_pw_qpolynomial_fold *upwf); 706 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_copy( 707 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 708 709 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold( 710 __isl_take isl_union_pw_qpolynomial_fold *upwf1, 711 __isl_take isl_union_pw_qpolynomial_fold *upwf2); 712 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial( 713 __isl_take isl_union_pw_qpolynomial_fold *upwf, 714 __isl_take isl_union_pw_qpolynomial *upwqp); 715 __isl_give isl_union_pw_qpolynomial_fold * 716 isl_union_pw_qpolynomial_fold_scale_val( 717 __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v); 718 __isl_give isl_union_pw_qpolynomial_fold * 719 isl_union_pw_qpolynomial_fold_scale_down_val( 720 __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v); 721 722 __isl_give isl_union_set *isl_union_pw_qpolynomial_fold_domain( 723 __isl_take isl_union_pw_qpolynomial_fold *upwf); 724 __isl_give isl_union_pw_qpolynomial_fold * 725 isl_union_pw_qpolynomial_fold_intersect_domain_space( 726 __isl_take isl_union_pw_qpolynomial_fold *upwf, 727 __isl_take isl_space *space); 728 __isl_give isl_union_pw_qpolynomial_fold * 729 isl_union_pw_qpolynomial_fold_intersect_domain_union_set( 730 __isl_take isl_union_pw_qpolynomial_fold *upwf, 731 __isl_take isl_union_set *uset); 732 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_intersect_domain( 733 __isl_take isl_union_pw_qpolynomial_fold *upwf, 734 __isl_take isl_union_set *uset); 735 __isl_give isl_union_pw_qpolynomial_fold * 736 isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_domain( 737 __isl_take isl_union_pw_qpolynomial_fold *upwf, 738 __isl_take isl_union_set *uset); 739 __isl_give isl_union_pw_qpolynomial_fold * 740 isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_range( 741 __isl_take isl_union_pw_qpolynomial_fold *upwf, 742 __isl_take isl_union_set *uset); 743 __isl_give isl_union_pw_qpolynomial_fold * 744 isl_union_pw_qpolynomial_fold_intersect_params( 745 __isl_take isl_union_pw_qpolynomial_fold *upwf, 746 __isl_take isl_set *set); 747 __isl_give isl_union_pw_qpolynomial_fold * 748 isl_union_pw_qpolynomial_fold_subtract_domain_union_set( 749 __isl_take isl_union_pw_qpolynomial_fold *upwf, 750 __isl_take isl_union_set *uset); 751 __isl_give isl_union_pw_qpolynomial_fold * 752 isl_union_pw_qpolynomial_fold_subtract_domain_space( 753 __isl_take isl_union_pw_qpolynomial_fold *upwf, 754 __isl_take isl_space *space); 755 __isl_give isl_union_pw_qpolynomial_fold * 756 isl_union_pw_qpolynomial_fold_subtract_domain( 757 __isl_take isl_union_pw_qpolynomial_fold *upwf, 758 __isl_take isl_union_set *uset); 759 760 enum isl_fold isl_union_pw_qpolynomial_fold_get_type( 761 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 762 __isl_give isl_space *isl_union_pw_qpolynomial_fold_get_space( 763 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 764 __isl_give isl_pw_qpolynomial_fold_list * 765 isl_union_pw_qpolynomial_fold_get_pw_qpolynomial_fold_list( 766 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 767 768 __isl_give isl_union_pw_qpolynomial_fold * 769 isl_union_pw_qpolynomial_fold_set_dim_name( 770 __isl_take isl_union_pw_qpolynomial_fold *upwf, 771 enum isl_dim_type type, unsigned pos, const char *s); 772 773 int isl_union_pw_qpolynomial_fold_find_dim_by_name( 774 __isl_keep isl_union_pw_qpolynomial_fold *upwf, 775 enum isl_dim_type type, const char *name); 776 777 __isl_give isl_union_pw_qpolynomial_fold * 778 isl_union_pw_qpolynomial_fold_drop_dims( 779 __isl_take isl_union_pw_qpolynomial_fold *upwf, 780 enum isl_dim_type type, unsigned first, unsigned n); 781 __isl_give isl_union_pw_qpolynomial_fold * 782 isl_union_pw_qpolynomial_fold_reset_user( 783 __isl_take isl_union_pw_qpolynomial_fold *upwf); 784 785 __isl_give isl_val *isl_union_pw_qpolynomial_fold_eval( 786 __isl_take isl_union_pw_qpolynomial_fold *upwf, 787 __isl_take isl_point *pnt); 788 789 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_coalesce( 790 __isl_take isl_union_pw_qpolynomial_fold *upwf); 791 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_gist( 792 __isl_take isl_union_pw_qpolynomial_fold *upwf, 793 __isl_take isl_union_set *context); 794 __isl_give isl_union_pw_qpolynomial_fold * 795 isl_union_pw_qpolynomial_fold_gist_params( 796 __isl_take isl_union_pw_qpolynomial_fold *upwf, 797 __isl_take isl_set *context); 798 799 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_align_params( 800 __isl_take isl_union_pw_qpolynomial_fold *upwf, 801 __isl_take isl_space *model); 802 __isl_give isl_union_pw_qpolynomial_fold * 803 isl_union_pw_qpolynomial_fold_drop_unused_params( 804 __isl_take isl_union_pw_qpolynomial_fold *upwf); 805 806 isl_size isl_union_pw_qpolynomial_fold_n_pw_qpolynomial_fold( 807 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 808 isl_stat isl_union_pw_qpolynomial_fold_foreach_pw_qpolynomial_fold( 809 __isl_keep isl_union_pw_qpolynomial_fold *upwf, 810 isl_stat (*fn)(__isl_take isl_pw_qpolynomial_fold *pwf, 811 void *user), void *user); 812 isl_bool isl_union_pw_qpolynomial_fold_every_pw_qpolynomial_fold( 813 __isl_keep isl_union_pw_qpolynomial_fold *upwf, 814 isl_bool (*test)(__isl_keep isl_pw_qpolynomial_fold *pwf, 815 void *user), void *user); 816 __isl_give isl_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_extract_pw_qpolynomial_fold( 817 __isl_keep isl_union_pw_qpolynomial_fold *upwf, 818 __isl_take isl_space *space); 819 820 __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial_fold( 821 __isl_take isl_printer *p, 822 __isl_keep isl_union_pw_qpolynomial_fold *upwf); 823 824 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_bound( 825 __isl_take isl_union_pw_qpolynomial *upwqp, 826 enum isl_fold type, isl_bool *tight); 827 __isl_give isl_union_pw_qpolynomial_fold *isl_union_set_apply_union_pw_qpolynomial_fold( 828 __isl_take isl_union_set *uset, 829 __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight); 830 __isl_give isl_union_pw_qpolynomial_fold *isl_union_map_apply_union_pw_qpolynomial_fold( 831 __isl_take isl_union_map *umap, 832 __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight); 833 834 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_to_polynomial( 835 __isl_take isl_union_pw_qpolynomial *upwqp, int sign); 836 837 ISL_DECLARE_LIST_FN(qpolynomial) 838 ISL_DECLARE_LIST_FN(pw_qpolynomial) 839 ISL_DECLARE_LIST_FN(pw_qpolynomial_fold) 840 841 #if defined(__cplusplus) 842 } 843 #endif 844 845 #endif 846