File indexing completed on 2026-05-10 08:48:19
0001 #ifndef ISL_POLYNOMIAL_H
0002 #define ISL_POLYNOMIAL_H
0003
0004 #include <isl/ctx.h>
0005 #include <isl/constraint.h>
0006 #include <isl/space_type.h>
0007 #include <isl/set_type.h>
0008 #include <isl/point.h>
0009 #include <isl/printer.h>
0010 #include <isl/union_set_type.h>
0011 #include <isl/aff_type.h>
0012 #include <isl/polynomial_type.h>
0013 #include <isl/val_type.h>
0014
0015 #if defined(__cplusplus)
0016 extern "C" {
0017 #endif
0018
0019 isl_ctx *isl_qpolynomial_get_ctx(__isl_keep isl_qpolynomial *qp);
0020 __isl_give isl_space *isl_qpolynomial_get_domain_space(
0021 __isl_keep isl_qpolynomial *qp);
0022 __isl_give isl_space *isl_qpolynomial_get_space(__isl_keep isl_qpolynomial *qp);
0023 isl_size isl_qpolynomial_dim(__isl_keep isl_qpolynomial *qp,
0024 enum isl_dim_type type);
0025 isl_bool isl_qpolynomial_involves_dims(__isl_keep isl_qpolynomial *qp,
0026 enum isl_dim_type type, unsigned first, unsigned n);
0027
0028 __isl_give isl_val *isl_qpolynomial_get_constant_val(
0029 __isl_keep isl_qpolynomial *qp);
0030
0031 __isl_give isl_qpolynomial *isl_qpolynomial_set_dim_name(
0032 __isl_take isl_qpolynomial *qp,
0033 enum isl_dim_type type, unsigned pos, const char *s);
0034
0035 __isl_give isl_qpolynomial *isl_qpolynomial_zero_on_domain(
0036 __isl_take isl_space *domain);
0037 __isl_give isl_qpolynomial *isl_qpolynomial_one_on_domain(
0038 __isl_take isl_space *domain);
0039 __isl_give isl_qpolynomial *isl_qpolynomial_infty_on_domain(
0040 __isl_take isl_space *domain);
0041 __isl_give isl_qpolynomial *isl_qpolynomial_neginfty_on_domain(
0042 __isl_take isl_space *domain);
0043 __isl_give isl_qpolynomial *isl_qpolynomial_nan_on_domain(
0044 __isl_take isl_space *domain);
0045 __isl_give isl_qpolynomial *isl_qpolynomial_val_on_domain(
0046 __isl_take isl_space *space, __isl_take isl_val *val);
0047 __isl_give isl_qpolynomial *isl_qpolynomial_var_on_domain(
0048 __isl_take isl_space *domain,
0049 enum isl_dim_type type, unsigned pos);
0050 __isl_give isl_qpolynomial *isl_qpolynomial_copy(__isl_keep isl_qpolynomial *qp);
0051 __isl_null isl_qpolynomial *isl_qpolynomial_free(
0052 __isl_take isl_qpolynomial *qp);
0053
0054 isl_bool isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1,
0055 __isl_keep isl_qpolynomial *qp2);
0056 isl_bool isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp);
0057 isl_bool isl_qpolynomial_is_nan(__isl_keep isl_qpolynomial *qp);
0058 isl_bool isl_qpolynomial_is_infty(__isl_keep isl_qpolynomial *qp);
0059 isl_bool isl_qpolynomial_is_neginfty(__isl_keep isl_qpolynomial *qp);
0060 int isl_qpolynomial_sgn(__isl_keep isl_qpolynomial *qp);
0061
0062 __isl_give isl_qpolynomial *isl_qpolynomial_neg(__isl_take isl_qpolynomial *qp);
0063 __isl_give isl_qpolynomial *isl_qpolynomial_add(__isl_take isl_qpolynomial *qp1,
0064 __isl_take isl_qpolynomial *qp2);
0065 __isl_give isl_qpolynomial *isl_qpolynomial_sub(__isl_take isl_qpolynomial *qp1,
0066 __isl_take isl_qpolynomial *qp2);
0067 __isl_give isl_qpolynomial *isl_qpolynomial_mul(__isl_take isl_qpolynomial *qp1,
0068 __isl_take isl_qpolynomial *qp2);
0069 __isl_give isl_qpolynomial *isl_qpolynomial_pow(__isl_take isl_qpolynomial *qp,
0070 unsigned power);
0071 __isl_give isl_qpolynomial *isl_qpolynomial_scale_val(
0072 __isl_take isl_qpolynomial *qp, __isl_take isl_val *v);
0073 __isl_give isl_qpolynomial *isl_qpolynomial_scale_down_val(
0074 __isl_take isl_qpolynomial *qp, __isl_take isl_val *v);
0075
0076 __isl_give isl_qpolynomial *isl_qpolynomial_insert_dims(
0077 __isl_take isl_qpolynomial *qp, enum isl_dim_type type,
0078 unsigned first, unsigned n);
0079 __isl_give isl_qpolynomial *isl_qpolynomial_add_dims(
0080 __isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned n);
0081 __isl_give isl_qpolynomial *isl_qpolynomial_move_dims(
0082 __isl_take isl_qpolynomial *qp,
0083 enum isl_dim_type dst_type, unsigned dst_pos,
0084 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
0085 __isl_give isl_qpolynomial *isl_qpolynomial_project_domain_on_params(
0086 __isl_take isl_qpolynomial *qp);
0087 __isl_give isl_qpolynomial *isl_qpolynomial_drop_dims(
0088 __isl_take isl_qpolynomial *qp,
0089 enum isl_dim_type type, unsigned first, unsigned n);
0090
0091 __isl_give isl_qpolynomial *isl_qpolynomial_substitute(
0092 __isl_take isl_qpolynomial *qp,
0093 enum isl_dim_type type, unsigned first, unsigned n,
0094 __isl_keep isl_qpolynomial **subs);
0095
0096 isl_stat isl_qpolynomial_as_polynomial_on_domain(__isl_keep isl_qpolynomial *qp,
0097 __isl_keep isl_basic_set *bset,
0098 isl_stat (*fn)(__isl_take isl_basic_set *bset,
0099 __isl_take isl_qpolynomial *poly, void *user), void *user);
0100
0101 __isl_give isl_qpolynomial *isl_qpolynomial_homogenize(
0102 __isl_take isl_qpolynomial *poly);
0103
0104 __isl_give isl_qpolynomial *isl_qpolynomial_align_params(
0105 __isl_take isl_qpolynomial *qp, __isl_take isl_space *model);
0106
0107 isl_ctx *isl_term_get_ctx(__isl_keep isl_term *term);
0108
0109 __isl_give isl_term *isl_term_copy(__isl_keep isl_term *term);
0110 __isl_null isl_term *isl_term_free(__isl_take isl_term *term);
0111
0112 isl_size isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type);
0113 __isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term);
0114 isl_size isl_term_get_exp(__isl_keep isl_term *term,
0115 enum isl_dim_type type, unsigned pos);
0116 __isl_give isl_aff *isl_term_get_div(__isl_keep isl_term *term, unsigned pos);
0117
0118 isl_stat isl_qpolynomial_foreach_term(__isl_keep isl_qpolynomial *qp,
0119 isl_stat (*fn)(__isl_take isl_term *term, void *user), void *user);
0120
0121 __isl_give isl_val *isl_qpolynomial_eval(__isl_take isl_qpolynomial *qp,
0122 __isl_take isl_point *pnt);
0123
0124 __isl_give isl_qpolynomial *isl_qpolynomial_gist_params(
0125 __isl_take isl_qpolynomial *qp, __isl_take isl_set *context);
0126 __isl_give isl_qpolynomial *isl_qpolynomial_gist(
0127 __isl_take isl_qpolynomial *qp, __isl_take isl_set *context);
0128
0129 __isl_give isl_qpolynomial *isl_qpolynomial_from_constraint(
0130 __isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos);
0131 __isl_give isl_qpolynomial *isl_qpolynomial_from_term(__isl_take isl_term *term);
0132 __isl_give isl_qpolynomial *isl_qpolynomial_from_aff(__isl_take isl_aff *aff);
0133 __isl_give isl_basic_map *isl_basic_map_from_qpolynomial(
0134 __isl_take isl_qpolynomial *qp);
0135
0136 __isl_give isl_printer *isl_printer_print_qpolynomial(
0137 __isl_take isl_printer *p, __isl_keep isl_qpolynomial *qp);
0138 void isl_qpolynomial_print(__isl_keep isl_qpolynomial *qp, FILE *out,
0139 unsigned output_format);
0140 void isl_qpolynomial_dump(__isl_keep isl_qpolynomial *qp);
0141
0142 isl_ctx *isl_pw_qpolynomial_get_ctx(__isl_keep isl_pw_qpolynomial *pwqp);
0143
0144 isl_bool isl_pw_qpolynomial_involves_nan(__isl_keep isl_pw_qpolynomial *pwqp);
0145 isl_bool isl_pw_qpolynomial_plain_is_equal(__isl_keep isl_pw_qpolynomial *pwqp1,
0146 __isl_keep isl_pw_qpolynomial *pwqp2);
0147
0148 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_zero(
0149 __isl_take isl_space *space);
0150 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc(__isl_take isl_set *set,
0151 __isl_take isl_qpolynomial *qp);
0152 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial(
0153 __isl_take isl_qpolynomial *qp);
0154 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_copy(
0155 __isl_keep isl_pw_qpolynomial *pwqp);
0156 __isl_null isl_pw_qpolynomial *isl_pw_qpolynomial_free(
0157 __isl_take isl_pw_qpolynomial *pwqp);
0158
0159 isl_bool isl_pw_qpolynomial_is_zero(__isl_keep isl_pw_qpolynomial *pwqp);
0160
0161 __isl_give isl_space *isl_pw_qpolynomial_get_domain_space(
0162 __isl_keep isl_pw_qpolynomial *pwqp);
0163 __isl_give isl_space *isl_pw_qpolynomial_get_space(
0164 __isl_keep isl_pw_qpolynomial *pwqp);
0165 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_domain_space(
0166 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_space *space);
0167 isl_size isl_pw_qpolynomial_dim(__isl_keep isl_pw_qpolynomial *pwqp,
0168 enum isl_dim_type type);
0169 isl_bool isl_pw_qpolynomial_involves_param_id(
0170 __isl_keep isl_pw_qpolynomial *pwqp, __isl_keep isl_id *id);
0171 isl_bool isl_pw_qpolynomial_involves_dims(__isl_keep isl_pw_qpolynomial *pwqp,
0172 enum isl_dim_type type, unsigned first, unsigned n);
0173 isl_bool isl_pw_qpolynomial_has_equal_space(
0174 __isl_keep isl_pw_qpolynomial *pwqp1,
0175 __isl_keep isl_pw_qpolynomial *pwqp2);
0176
0177 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_set_dim_name(
0178 __isl_take isl_pw_qpolynomial *pwqp,
0179 enum isl_dim_type type, unsigned pos, const char *s);
0180
0181 int isl_pw_qpolynomial_find_dim_by_name(__isl_keep isl_pw_qpolynomial *pwqp,
0182 enum isl_dim_type type, const char *name);
0183
0184 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_user(
0185 __isl_take isl_pw_qpolynomial *pwqp);
0186
0187 __isl_export
0188 __isl_give isl_set *isl_pw_qpolynomial_domain(__isl_take isl_pw_qpolynomial *pwqp);
0189 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_domain(
0190 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
0191 __isl_give isl_pw_qpolynomial *
0192 isl_pw_qpolynomial_intersect_domain_wrapped_domain(
0193 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
0194 __isl_give isl_pw_qpolynomial *
0195 isl_pw_qpolynomial_intersect_domain_wrapped_range(
0196 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
0197 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_params(
0198 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
0199 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_subtract_domain(
0200 __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
0201
0202 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_project_domain_on_params(
0203 __isl_take isl_pw_qpolynomial *pwqp);
0204 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_range(
0205 __isl_take isl_pw_qpolynomial *pwqp);
0206 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_dims(
0207 __isl_take isl_pw_qpolynomial *pwqp,
0208 enum isl_dim_type type, unsigned first, unsigned n);
0209 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_dims(
0210 __isl_take isl_pw_qpolynomial *pwqp,
0211 enum isl_dim_type type, unsigned first, unsigned n);
0212
0213 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_unused_params(
0214 __isl_take isl_pw_qpolynomial *pwqp);
0215
0216 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add(
0217 __isl_take isl_pw_qpolynomial *pwqp1,
0218 __isl_take isl_pw_qpolynomial *pwqp2);
0219 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_sub(
0220 __isl_take isl_pw_qpolynomial *pwqp1,
0221 __isl_take isl_pw_qpolynomial *pwqp2);
0222 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_disjoint(
0223 __isl_take isl_pw_qpolynomial *pwqp1,
0224 __isl_take isl_pw_qpolynomial *pwqp2);
0225 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_neg(
0226 __isl_take isl_pw_qpolynomial *pwqp);
0227 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul(
0228 __isl_take isl_pw_qpolynomial *pwqp1,
0229 __isl_take isl_pw_qpolynomial *pwqp2);
0230 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_val(
0231 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v);
0232 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_down_val(
0233 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v);
0234 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_pow(
0235 __isl_take isl_pw_qpolynomial *pwqp, unsigned exponent);
0236
0237 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_insert_dims(
0238 __isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type,
0239 unsigned first, unsigned n);
0240 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_dims(
0241 __isl_take isl_pw_qpolynomial *pwqp,
0242 enum isl_dim_type type, unsigned n);
0243 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_move_dims(
0244 __isl_take isl_pw_qpolynomial *pwqp,
0245 enum isl_dim_type dst_type, unsigned dst_pos,
0246 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
0247
0248 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_fix_val(
0249 __isl_take isl_pw_qpolynomial *pwqp,
0250 enum isl_dim_type type, unsigned n, __isl_take isl_val *v);
0251
0252 __isl_export
0253 __isl_give isl_val *isl_pw_qpolynomial_eval(
0254 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_point *pnt);
0255
0256 __isl_give isl_val *isl_pw_qpolynomial_max(__isl_take isl_pw_qpolynomial *pwqp);
0257 __isl_give isl_val *isl_pw_qpolynomial_min(__isl_take isl_pw_qpolynomial *pwqp);
0258
0259 isl_size isl_pw_qpolynomial_n_piece(__isl_keep isl_pw_qpolynomial *pwqp);
0260 isl_stat isl_pw_qpolynomial_foreach_piece(__isl_keep isl_pw_qpolynomial *pwqp,
0261 isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp,
0262 void *user), void *user);
0263 isl_bool isl_pw_qpolynomial_every_piece(__isl_keep isl_pw_qpolynomial *pwqp,
0264 isl_bool (*test)(__isl_keep isl_set *set,
0265 __isl_keep isl_qpolynomial *qp, void *user), void *user);
0266 isl_stat isl_pw_qpolynomial_foreach_lifted_piece(
0267 __isl_keep isl_pw_qpolynomial *pwqp,
0268 isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp,
0269 void *user), void *user);
0270 isl_bool isl_pw_qpolynomial_isa_qpolynomial(
0271 __isl_keep isl_pw_qpolynomial *pwqp);
0272 __isl_give isl_qpolynomial *isl_pw_qpolynomial_as_qpolynomial(
0273 __isl_take isl_pw_qpolynomial *pwqp);
0274
0275 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_pw_aff(
0276 __isl_take isl_pw_aff *pwaff);
0277
0278 __isl_constructor
0279 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_str(isl_ctx *ctx,
0280 const char *str);
0281 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_file(isl_ctx *ctx,
0282 FILE *input);
0283 __isl_give char *isl_pw_qpolynomial_to_str(__isl_keep isl_pw_qpolynomial *pwqp);
0284 __isl_give isl_printer *isl_printer_print_pw_qpolynomial(
0285 __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial *pwqp);
0286 void isl_pw_qpolynomial_print(__isl_keep isl_pw_qpolynomial *pwqp, FILE *out,
0287 unsigned output_format);
0288 void isl_pw_qpolynomial_dump(__isl_keep isl_pw_qpolynomial *pwqp);
0289
0290 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_coalesce(
0291 __isl_take isl_pw_qpolynomial *pwqp);
0292 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist(
0293 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
0294 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist_params(
0295 __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
0296
0297 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_periods(
0298 __isl_take isl_pw_qpolynomial *pwqp, int max_periods);
0299
0300 __isl_give isl_pw_qpolynomial *isl_basic_set_multiplicative_call(
0301 __isl_take isl_basic_set *bset,
0302 __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset));
0303
0304 isl_ctx *isl_qpolynomial_fold_get_ctx(__isl_keep isl_qpolynomial_fold *fold);
0305 enum isl_fold isl_qpolynomial_fold_get_type(__isl_keep isl_qpolynomial_fold *fold);
0306
0307 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_empty(enum isl_fold type,
0308 __isl_take isl_space *space);
0309 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_alloc(
0310 enum isl_fold type, __isl_take isl_qpolynomial *qp);
0311 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_copy(
0312 __isl_keep isl_qpolynomial_fold *fold);
0313 __isl_null isl_qpolynomial_fold *isl_qpolynomial_fold_free(
0314 __isl_take isl_qpolynomial_fold *fold);
0315
0316 isl_bool isl_qpolynomial_fold_is_empty(__isl_keep isl_qpolynomial_fold *fold);
0317 isl_bool isl_qpolynomial_fold_is_nan(__isl_keep isl_qpolynomial_fold *fold);
0318 isl_bool isl_qpolynomial_fold_plain_is_equal(
0319 __isl_keep isl_qpolynomial_fold *fold1,
0320 __isl_keep isl_qpolynomial_fold *fold2);
0321
0322 __isl_give isl_space *isl_qpolynomial_fold_get_domain_space(
0323 __isl_keep isl_qpolynomial_fold *fold);
0324 __isl_give isl_space *isl_qpolynomial_fold_get_space(
0325 __isl_keep isl_qpolynomial_fold *fold);
0326
0327 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_fold(
0328 __isl_take isl_qpolynomial_fold *fold1,
0329 __isl_take isl_qpolynomial_fold *fold2);
0330
0331 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_val(
0332 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v);
0333 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_down_val(
0334 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v);
0335
0336 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_move_dims(
0337 __isl_take isl_qpolynomial_fold *fold,
0338 enum isl_dim_type dst_type, unsigned dst_pos,
0339 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
0340
0341 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_substitute(
0342 __isl_take isl_qpolynomial_fold *fold,
0343 enum isl_dim_type type, unsigned first, unsigned n,
0344 __isl_keep isl_qpolynomial **subs);
0345
0346 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fix_val(
0347 __isl_take isl_pw_qpolynomial_fold *pwf,
0348 enum isl_dim_type type, unsigned n, __isl_take isl_val *v);
0349
0350 __isl_give isl_val *isl_qpolynomial_fold_eval(
0351 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_point *pnt);
0352
0353 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist_params(
0354 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
0355 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist(
0356 __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
0357
0358 isl_stat isl_qpolynomial_fold_foreach_qpolynomial(
0359 __isl_keep isl_qpolynomial_fold *fold,
0360 isl_stat (*fn)(__isl_take isl_qpolynomial *qp, void *user), void *user);
0361
0362 __isl_give isl_printer *isl_printer_print_qpolynomial_fold(
0363 __isl_take isl_printer *p, __isl_keep isl_qpolynomial_fold *fold);
0364 void isl_qpolynomial_fold_print(__isl_keep isl_qpolynomial_fold *fold, FILE *out,
0365 unsigned output_format);
0366 void isl_qpolynomial_fold_dump(__isl_keep isl_qpolynomial_fold *fold);
0367
0368 isl_ctx *isl_pw_qpolynomial_fold_get_ctx(__isl_keep isl_pw_qpolynomial_fold *pwf);
0369 enum isl_fold isl_pw_qpolynomial_fold_get_type(
0370 __isl_keep isl_pw_qpolynomial_fold *pwf);
0371
0372 isl_bool isl_pw_qpolynomial_fold_involves_nan(
0373 __isl_keep isl_pw_qpolynomial_fold *pwf);
0374 isl_bool isl_pw_qpolynomial_fold_plain_is_equal(
0375 __isl_keep isl_pw_qpolynomial_fold *pwf1,
0376 __isl_keep isl_pw_qpolynomial_fold *pwf2);
0377
0378 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_pw_qpolynomial(
0379 enum isl_fold type, __isl_take isl_pw_qpolynomial *pwqp);
0380
0381 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_alloc(
0382 enum isl_fold type,
0383 __isl_take isl_set *set, __isl_take isl_qpolynomial_fold *fold);
0384 __isl_give isl_pw_qpolynomial_fold *
0385 isl_pw_qpolynomial_fold_from_qpolynomial_fold(
0386 __isl_take isl_qpolynomial_fold *fold);
0387 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_copy(
0388 __isl_keep isl_pw_qpolynomial_fold *pwf);
0389 __isl_null isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_free(
0390 __isl_take isl_pw_qpolynomial_fold *pwf);
0391
0392 isl_bool isl_pw_qpolynomial_fold_is_zero(
0393 __isl_keep isl_pw_qpolynomial_fold *pwf);
0394
0395 __isl_give isl_space *isl_pw_qpolynomial_fold_get_domain_space(
0396 __isl_keep isl_pw_qpolynomial_fold *pwf);
0397 __isl_give isl_space *isl_pw_qpolynomial_fold_get_space(
0398 __isl_keep isl_pw_qpolynomial_fold *pwf);
0399 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_space(
0400 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_space *space);
0401 isl_size isl_pw_qpolynomial_fold_dim(__isl_keep isl_pw_qpolynomial_fold *pwf,
0402 enum isl_dim_type type);
0403 isl_bool isl_pw_qpolynomial_fold_involves_param_id(
0404 __isl_keep isl_pw_qpolynomial_fold *pwf, __isl_keep isl_id *id);
0405 isl_bool isl_pw_qpolynomial_fold_has_equal_space(
0406 __isl_keep isl_pw_qpolynomial_fold *pwf1,
0407 __isl_keep isl_pw_qpolynomial_fold *pwf2);
0408
0409 size_t isl_pw_qpolynomial_fold_size(__isl_keep isl_pw_qpolynomial_fold *pwf);
0410
0411 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_zero(
0412 __isl_take isl_space *space, enum isl_fold type);
0413
0414 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_set_dim_name(
0415 __isl_take isl_pw_qpolynomial_fold *pwf,
0416 enum isl_dim_type type, unsigned pos, const char *s);
0417
0418 int isl_pw_qpolynomial_fold_find_dim_by_name(
0419 __isl_keep isl_pw_qpolynomial_fold *pwf,
0420 enum isl_dim_type type, const char *name);
0421
0422 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_user(
0423 __isl_take isl_pw_qpolynomial_fold *pwf);
0424
0425 __isl_give isl_set *isl_pw_qpolynomial_fold_domain(
0426 __isl_take isl_pw_qpolynomial_fold *pwf);
0427 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_domain(
0428 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
0429 __isl_give isl_pw_qpolynomial_fold *
0430 isl_pw_qpolynomial_fold_intersect_domain_wrapped_domain(
0431 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
0432 __isl_give isl_pw_qpolynomial_fold *
0433 isl_pw_qpolynomial_fold_intersect_domain_wrapped_range(
0434 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
0435 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_params(
0436 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
0437 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_subtract_domain(
0438 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
0439
0440 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add(
0441 __isl_take isl_pw_qpolynomial_fold *pwf1,
0442 __isl_take isl_pw_qpolynomial_fold *pwf2);
0443 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fold(
0444 __isl_take isl_pw_qpolynomial_fold *pwf1,
0445 __isl_take isl_pw_qpolynomial_fold *pwf2);
0446 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add_disjoint(
0447 __isl_take isl_pw_qpolynomial_fold *pwf1,
0448 __isl_take isl_pw_qpolynomial_fold *pwf2);
0449 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_val(
0450 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v);
0451 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_down_val(
0452 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v);
0453
0454 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_project_domain_on_params(
0455 __isl_take isl_pw_qpolynomial_fold *pwf);
0456 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_range(
0457 __isl_take isl_pw_qpolynomial_fold *pwf);
0458 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_dims(
0459 __isl_take isl_pw_qpolynomial_fold *pwf,
0460 enum isl_dim_type type, unsigned first, unsigned n);
0461 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_move_dims(
0462 __isl_take isl_pw_qpolynomial_fold *pwf,
0463 enum isl_dim_type dst_type, unsigned dst_pos,
0464 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
0465
0466 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_unused_params(
0467 __isl_take isl_pw_qpolynomial_fold *pwf);
0468
0469 __isl_give isl_val *isl_pw_qpolynomial_fold_eval(
0470 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_point *pnt);
0471
0472 isl_size isl_pw_qpolynomial_fold_n_piece(
0473 __isl_keep isl_pw_qpolynomial_fold *pwf);
0474 isl_stat isl_pw_qpolynomial_fold_foreach_piece(
0475 __isl_keep isl_pw_qpolynomial_fold *pwf,
0476 isl_stat (*fn)(__isl_take isl_set *set,
0477 __isl_take isl_qpolynomial_fold *fold, void *user), void *user);
0478 isl_bool isl_pw_qpolynomial_fold_every_piece(
0479 __isl_keep isl_pw_qpolynomial_fold *pwf,
0480 isl_bool (*test)(__isl_keep isl_set *set,
0481 __isl_keep isl_qpolynomial_fold *fold, void *user), void *user);
0482 isl_stat isl_pw_qpolynomial_fold_foreach_lifted_piece(
0483 __isl_keep isl_pw_qpolynomial_fold *pwf,
0484 isl_stat (*fn)(__isl_take isl_set *set,
0485 __isl_take isl_qpolynomial_fold *fold, void *user), void *user);
0486 isl_bool isl_pw_qpolynomial_fold_isa_qpolynomial_fold(
0487 __isl_keep isl_pw_qpolynomial_fold *pwf);
0488 __isl_give isl_qpolynomial_fold *isl_pw_qpolynomial_fold_as_qpolynomial_fold(
0489 __isl_take isl_pw_qpolynomial_fold *pwf);
0490
0491 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_read_from_str(
0492 isl_ctx *ctx, const char *str);
0493 __isl_give isl_printer *isl_printer_print_pw_qpolynomial_fold(
0494 __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial_fold *pwf);
0495 void isl_pw_qpolynomial_fold_print(__isl_keep isl_pw_qpolynomial_fold *pwf,
0496 FILE *out, unsigned output_format);
0497 void isl_pw_qpolynomial_fold_dump(__isl_keep isl_pw_qpolynomial_fold *pwf);
0498
0499 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_coalesce(
0500 __isl_take isl_pw_qpolynomial_fold *pwf);
0501 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist(
0502 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
0503 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist_params(
0504 __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
0505
0506 __isl_give isl_val *isl_pw_qpolynomial_fold_max(
0507 __isl_take isl_pw_qpolynomial_fold *pwf);
0508 __isl_give isl_val *isl_pw_qpolynomial_fold_min(
0509 __isl_take isl_pw_qpolynomial_fold *pwf);
0510
0511 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_bound(
0512 __isl_take isl_pw_qpolynomial *pwqp, enum isl_fold type,
0513 isl_bool *tight);
0514 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_bound(
0515 __isl_take isl_pw_qpolynomial_fold *pwf, isl_bool *tight);
0516 __isl_give isl_pw_qpolynomial_fold *isl_set_apply_pw_qpolynomial_fold(
0517 __isl_take isl_set *set, __isl_take isl_pw_qpolynomial_fold *pwf,
0518 isl_bool *tight);
0519 __isl_give isl_pw_qpolynomial_fold *isl_map_apply_pw_qpolynomial_fold(
0520 __isl_take isl_map *map, __isl_take isl_pw_qpolynomial_fold *pwf,
0521 isl_bool *tight);
0522
0523 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_to_polynomial(
0524 __isl_take isl_pw_qpolynomial *pwqp, int sign);
0525
0526 isl_ctx *isl_union_pw_qpolynomial_get_ctx(
0527 __isl_keep isl_union_pw_qpolynomial *upwqp);
0528
0529 isl_size isl_union_pw_qpolynomial_dim(
0530 __isl_keep isl_union_pw_qpolynomial *upwqp, enum isl_dim_type type);
0531
0532 isl_bool isl_union_pw_qpolynomial_involves_nan(
0533 __isl_keep isl_union_pw_qpolynomial *upwqp);
0534 isl_bool isl_union_pw_qpolynomial_plain_is_equal(
0535 __isl_keep isl_union_pw_qpolynomial *upwqp1,
0536 __isl_keep isl_union_pw_qpolynomial *upwqp2);
0537
0538 __isl_give isl_union_pw_qpolynomial *isl_pw_qpolynomial_to_union_pw_qpolynomial(
0539 __isl_take isl_pw_qpolynomial *pwqp);
0540 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_from_pw_qpolynomial(__isl_take isl_pw_qpolynomial *pwqp);
0541 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_ctx(
0542 isl_ctx *ctx);
0543 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_space(
0544 __isl_take isl_space *space);
0545 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero(
0546 __isl_take isl_space *space);
0547 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add_pw_qpolynomial(
0548 __isl_take isl_union_pw_qpolynomial *upwqp,
0549 __isl_take isl_pw_qpolynomial *pwqp);
0550 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_copy(
0551 __isl_keep isl_union_pw_qpolynomial *upwqp);
0552 __isl_null isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_free(
0553 __isl_take isl_union_pw_qpolynomial *upwqp);
0554
0555 __isl_constructor
0556 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_read_from_str(
0557 isl_ctx *ctx, const char *str);
0558 __isl_give char *isl_union_pw_qpolynomial_to_str(
0559 __isl_keep isl_union_pw_qpolynomial *upwqp);
0560
0561 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_neg(
0562 __isl_take isl_union_pw_qpolynomial *upwqp);
0563
0564 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add(
0565 __isl_take isl_union_pw_qpolynomial *upwqp1,
0566 __isl_take isl_union_pw_qpolynomial *upwqp2);
0567 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sub(
0568 __isl_take isl_union_pw_qpolynomial *upwqp1,
0569 __isl_take isl_union_pw_qpolynomial *upwqp2);
0570 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul(
0571 __isl_take isl_union_pw_qpolynomial *upwqp1,
0572 __isl_take isl_union_pw_qpolynomial *upwqp2);
0573 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_val(
0574 __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v);
0575 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_down_val(
0576 __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v);
0577
0578 __isl_export
0579 __isl_give isl_union_set *isl_union_pw_qpolynomial_domain(
0580 __isl_take isl_union_pw_qpolynomial *upwqp);
0581 __isl_give isl_union_pw_qpolynomial *
0582 isl_union_pw_qpolynomial_intersect_domain_space(
0583 __isl_take isl_union_pw_qpolynomial *upwpq,
0584 __isl_take isl_space *space);
0585 __isl_give isl_union_pw_qpolynomial *
0586 isl_union_pw_qpolynomial_intersect_domain_union_set(
0587 __isl_take isl_union_pw_qpolynomial *upwpq,
0588 __isl_take isl_union_set *uset);
0589 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_domain(
0590 __isl_take isl_union_pw_qpolynomial *upwpq,
0591 __isl_take isl_union_set *uset);
0592 __isl_give isl_union_pw_qpolynomial *
0593 isl_union_pw_qpolynomial_intersect_domain_wrapped_domain(
0594 __isl_take isl_union_pw_qpolynomial *upwpq,
0595 __isl_take isl_union_set *uset);
0596 __isl_give isl_union_pw_qpolynomial *
0597 isl_union_pw_qpolynomial_intersect_domain_wrapped_range(
0598 __isl_take isl_union_pw_qpolynomial *upwpq,
0599 __isl_take isl_union_set *uset);
0600 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_params(
0601 __isl_take isl_union_pw_qpolynomial *upwpq,
0602 __isl_take isl_set *set);
0603 __isl_give isl_union_pw_qpolynomial *
0604 isl_union_pw_qpolynomial_subtract_domain_union_set(
0605 __isl_take isl_union_pw_qpolynomial *upwpq,
0606 __isl_take isl_union_set *uset);
0607 __isl_give isl_union_pw_qpolynomial *
0608 isl_union_pw_qpolynomial_subtract_domain_space(
0609 __isl_take isl_union_pw_qpolynomial *upwpq,
0610 __isl_take isl_space *space);
0611 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_subtract_domain(
0612 __isl_take isl_union_pw_qpolynomial *upwpq,
0613 __isl_take isl_union_set *uset);
0614
0615 __isl_give isl_space *isl_union_pw_qpolynomial_get_space(
0616 __isl_keep isl_union_pw_qpolynomial *upwqp);
0617 __isl_give isl_pw_qpolynomial_list *
0618 isl_union_pw_qpolynomial_get_pw_qpolynomial_list(
0619 __isl_keep isl_union_pw_qpolynomial *upwqp);
0620
0621 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_set_dim_name(
0622 __isl_take isl_union_pw_qpolynomial *upwqp,
0623 enum isl_dim_type type, unsigned pos, const char *s);
0624
0625 int isl_union_pw_qpolynomial_find_dim_by_name(
0626 __isl_keep isl_union_pw_qpolynomial *upwqp,
0627 enum isl_dim_type type, const char *name);
0628
0629 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_drop_dims(
0630 __isl_take isl_union_pw_qpolynomial *upwqp,
0631 enum isl_dim_type type, unsigned first, unsigned n);
0632 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_reset_user(
0633 __isl_take isl_union_pw_qpolynomial *upwqp);
0634
0635 __isl_export
0636 __isl_give isl_val *isl_union_pw_qpolynomial_eval(
0637 __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_point *pnt);
0638
0639 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_coalesce(
0640 __isl_take isl_union_pw_qpolynomial *upwqp);
0641 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist(
0642 __isl_take isl_union_pw_qpolynomial *upwqp,
0643 __isl_take isl_union_set *context);
0644 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist_params(
0645 __isl_take isl_union_pw_qpolynomial *upwqp,
0646 __isl_take isl_set *context);
0647
0648 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_align_params(
0649 __isl_take isl_union_pw_qpolynomial *upwqp,
0650 __isl_take isl_space *model);
0651
0652 isl_size isl_union_pw_qpolynomial_n_pw_qpolynomial(
0653 __isl_keep isl_union_pw_qpolynomial *upwqp);
0654 isl_stat isl_union_pw_qpolynomial_foreach_pw_qpolynomial(
0655 __isl_keep isl_union_pw_qpolynomial *upwqp,
0656 isl_stat (*fn)(__isl_take isl_pw_qpolynomial *pwqp, void *user),
0657 void *user);
0658 isl_bool isl_union_pw_qpolynomial_every_pw_qpolynomial(
0659 __isl_keep isl_union_pw_qpolynomial *upwqp,
0660 isl_bool (*test)(__isl_keep isl_pw_qpolynomial *pwqp, void *user),
0661 void *user);
0662 __isl_give isl_pw_qpolynomial *isl_union_pw_qpolynomial_extract_pw_qpolynomial(
0663 __isl_keep isl_union_pw_qpolynomial *upwqp,
0664 __isl_take isl_space *space);
0665
0666 __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial(
0667 __isl_take isl_printer *p, __isl_keep isl_union_pw_qpolynomial *upwqp);
0668
0669 isl_ctx *isl_union_pw_qpolynomial_fold_get_ctx(
0670 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0671
0672 isl_size isl_union_pw_qpolynomial_fold_dim(
0673 __isl_keep isl_union_pw_qpolynomial_fold *upwf, enum isl_dim_type type);
0674
0675 isl_bool isl_union_pw_qpolynomial_fold_involves_nan(
0676 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0677 isl_bool isl_union_pw_qpolynomial_fold_plain_is_equal(
0678 __isl_keep isl_union_pw_qpolynomial_fold *upwf1,
0679 __isl_keep isl_union_pw_qpolynomial_fold *upwf2);
0680
0681 __isl_give isl_union_pw_qpolynomial_fold *
0682 isl_pw_qpolynomial_fold_to_union_pw_qpolynomial_fold(
0683 __isl_take isl_pw_qpolynomial_fold *pwf);
0684 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_from_pw_qpolynomial_fold(__isl_take isl_pw_qpolynomial_fold *pwf);
0685 __isl_give isl_union_pw_qpolynomial_fold *
0686 isl_union_pw_qpolynomial_fold_zero_ctx(isl_ctx *ctx, enum isl_fold type);
0687 __isl_give isl_union_pw_qpolynomial_fold *
0688 isl_union_pw_qpolynomial_fold_zero_space(__isl_take isl_space *space,
0689 enum isl_fold type);
0690 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_zero(
0691 __isl_take isl_space *space, enum isl_fold type);
0692 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold(
0693 __isl_take isl_union_pw_qpolynomial_fold *upwqp,
0694 __isl_take isl_pw_qpolynomial_fold *pwqp);
0695 __isl_null isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_free(
0696 __isl_take isl_union_pw_qpolynomial_fold *upwf);
0697 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_copy(
0698 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0699
0700 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold(
0701 __isl_take isl_union_pw_qpolynomial_fold *upwf1,
0702 __isl_take isl_union_pw_qpolynomial_fold *upwf2);
0703 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial(
0704 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0705 __isl_take isl_union_pw_qpolynomial *upwqp);
0706 __isl_give isl_union_pw_qpolynomial_fold *
0707 isl_union_pw_qpolynomial_fold_scale_val(
0708 __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v);
0709 __isl_give isl_union_pw_qpolynomial_fold *
0710 isl_union_pw_qpolynomial_fold_scale_down_val(
0711 __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v);
0712
0713 __isl_give isl_union_set *isl_union_pw_qpolynomial_fold_domain(
0714 __isl_take isl_union_pw_qpolynomial_fold *upwf);
0715 __isl_give isl_union_pw_qpolynomial_fold *
0716 isl_union_pw_qpolynomial_fold_intersect_domain_space(
0717 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0718 __isl_take isl_space *space);
0719 __isl_give isl_union_pw_qpolynomial_fold *
0720 isl_union_pw_qpolynomial_fold_intersect_domain_union_set(
0721 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0722 __isl_take isl_union_set *uset);
0723 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_intersect_domain(
0724 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0725 __isl_take isl_union_set *uset);
0726 __isl_give isl_union_pw_qpolynomial_fold *
0727 isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_domain(
0728 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0729 __isl_take isl_union_set *uset);
0730 __isl_give isl_union_pw_qpolynomial_fold *
0731 isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_range(
0732 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0733 __isl_take isl_union_set *uset);
0734 __isl_give isl_union_pw_qpolynomial_fold *
0735 isl_union_pw_qpolynomial_fold_intersect_params(
0736 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0737 __isl_take isl_set *set);
0738 __isl_give isl_union_pw_qpolynomial_fold *
0739 isl_union_pw_qpolynomial_fold_subtract_domain_union_set(
0740 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0741 __isl_take isl_union_set *uset);
0742 __isl_give isl_union_pw_qpolynomial_fold *
0743 isl_union_pw_qpolynomial_fold_subtract_domain_space(
0744 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0745 __isl_take isl_space *space);
0746 __isl_give isl_union_pw_qpolynomial_fold *
0747 isl_union_pw_qpolynomial_fold_subtract_domain(
0748 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0749 __isl_take isl_union_set *uset);
0750
0751 enum isl_fold isl_union_pw_qpolynomial_fold_get_type(
0752 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0753 __isl_give isl_space *isl_union_pw_qpolynomial_fold_get_space(
0754 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0755 __isl_give isl_pw_qpolynomial_fold_list *
0756 isl_union_pw_qpolynomial_fold_get_pw_qpolynomial_fold_list(
0757 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0758
0759 __isl_give isl_union_pw_qpolynomial_fold *
0760 isl_union_pw_qpolynomial_fold_set_dim_name(
0761 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0762 enum isl_dim_type type, unsigned pos, const char *s);
0763
0764 int isl_union_pw_qpolynomial_fold_find_dim_by_name(
0765 __isl_keep isl_union_pw_qpolynomial_fold *upwf,
0766 enum isl_dim_type type, const char *name);
0767
0768 __isl_give isl_union_pw_qpolynomial_fold *
0769 isl_union_pw_qpolynomial_fold_drop_dims(
0770 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0771 enum isl_dim_type type, unsigned first, unsigned n);
0772 __isl_give isl_union_pw_qpolynomial_fold *
0773 isl_union_pw_qpolynomial_fold_reset_user(
0774 __isl_take isl_union_pw_qpolynomial_fold *upwf);
0775
0776 __isl_give isl_val *isl_union_pw_qpolynomial_fold_eval(
0777 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0778 __isl_take isl_point *pnt);
0779
0780 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_coalesce(
0781 __isl_take isl_union_pw_qpolynomial_fold *upwf);
0782 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_gist(
0783 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0784 __isl_take isl_union_set *context);
0785 __isl_give isl_union_pw_qpolynomial_fold *
0786 isl_union_pw_qpolynomial_fold_gist_params(
0787 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0788 __isl_take isl_set *context);
0789
0790 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_align_params(
0791 __isl_take isl_union_pw_qpolynomial_fold *upwf,
0792 __isl_take isl_space *model);
0793
0794 isl_size isl_union_pw_qpolynomial_fold_n_pw_qpolynomial_fold(
0795 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0796 isl_stat isl_union_pw_qpolynomial_fold_foreach_pw_qpolynomial_fold(
0797 __isl_keep isl_union_pw_qpolynomial_fold *upwf,
0798 isl_stat (*fn)(__isl_take isl_pw_qpolynomial_fold *pwf,
0799 void *user), void *user);
0800 isl_bool isl_union_pw_qpolynomial_fold_every_pw_qpolynomial_fold(
0801 __isl_keep isl_union_pw_qpolynomial_fold *upwf,
0802 isl_bool (*test)(__isl_keep isl_pw_qpolynomial_fold *pwf,
0803 void *user), void *user);
0804 __isl_give isl_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_extract_pw_qpolynomial_fold(
0805 __isl_keep isl_union_pw_qpolynomial_fold *upwf,
0806 __isl_take isl_space *space);
0807
0808 __isl_give isl_printer *isl_printer_print_union_pw_qpolynomial_fold(
0809 __isl_take isl_printer *p,
0810 __isl_keep isl_union_pw_qpolynomial_fold *upwf);
0811
0812 __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_bound(
0813 __isl_take isl_union_pw_qpolynomial *upwqp,
0814 enum isl_fold type, isl_bool *tight);
0815 __isl_give isl_union_pw_qpolynomial_fold *isl_union_set_apply_union_pw_qpolynomial_fold(
0816 __isl_take isl_union_set *uset,
0817 __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight);
0818 __isl_give isl_union_pw_qpolynomial_fold *isl_union_map_apply_union_pw_qpolynomial_fold(
0819 __isl_take isl_union_map *umap,
0820 __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight);
0821
0822 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_to_polynomial(
0823 __isl_take isl_union_pw_qpolynomial *upwqp, int sign);
0824
0825 ISL_DECLARE_LIST_FN(qpolynomial)
0826 ISL_DECLARE_LIST_FN(pw_qpolynomial)
0827 ISL_DECLARE_LIST_FN(pw_qpolynomial_fold)
0828
0829 #if defined(__cplusplus)
0830 }
0831 #endif
0832
0833 #endif