Polly 20.0.0git
|
#include <stdlib.h>
#include <isl_ctx_private.h>
#include <isl_map_private.h>
#include <isl_factorization.h>
#include <isl_lp_private.h>
#include <isl_seq.h>
#include <isl_union_map_private.h>
#include <isl_constraint_private.h>
#include <isl_polynomial_private.h>
#include <isl_point_private.h>
#include <isl_space_private.h>
#include <isl_mat_private.h>
#include <isl_vec_private.h>
#include <isl_range.h>
#include <isl_local.h>
#include <isl_local_space_private.h>
#include <isl_aff_private.h>
#include <isl_val_private.h>
#include <isl_config.h>
#include <isl_list_templ.c>
#include "isl_type_has_equal_space_bin_templ.c"
#include "isl_type_check_equal_space_templ.c"
#include "check_type_range_templ.c"
#include <isl_pw_templ.c>
#include <isl_pw_un_op_templ.c>
#include <isl_pw_add_disjoint_templ.c>
#include <isl_pw_eval.c>
#include <isl_pw_fix_templ.c>
#include <isl_pw_from_range_templ.c>
#include <isl_pw_insert_dims_templ.c>
#include <isl_pw_lift_templ.c>
#include <isl_pw_morph_templ.c>
#include <isl_pw_move_dims_templ.c>
#include <isl_pw_neg_templ.c>
#include <isl_pw_opt_templ.c>
#include <isl_pw_split_dims_templ.c>
#include <isl_pw_sub_templ.c>
#include <isl_union_single.c>
#include <isl_union_eval.c>
#include <isl_union_neg.c>
#include <isl_union_sub_templ.c>
Go to the source code of this file.
Classes | |
struct | isl_div_sort_info |
struct | isl_opt_data |
struct | isl_split_periods_data |
struct | isl_multiplicative_call_data_pw_qpolynomial |
struct | isl_to_poly_data |
Macros | |
#define | EL_BASE qpolynomial |
#define | EL_BASE pw_qpolynomial |
#define | TYPE isl_qpolynomial |
#define | PEEK_SPACE peek_domain_space |
#define | TYPE isl_qpolynomial |
#define | isl_qpolynomial_involves_nan isl_qpolynomial_is_nan |
#define | PW isl_pw_qpolynomial |
#define | BASE qpolynomial |
#define | EL_IS_ZERO is_zero |
#define | ZERO zero |
#define | IS_ZERO is_zero |
#define | FIELD qp |
#define | DEFAULT_IS_ZERO 1 |
#define | BASE pw_qpolynomial |
#define | TYPE isl_term |
#define BASE qpolynomial |
Definition at line 3126 of file isl_polynomial.c.
#define BASE pw_qpolynomial |
Definition at line 3126 of file isl_polynomial.c.
#define DEFAULT_IS_ZERO 1 |
Definition at line 3108 of file isl_polynomial.c.
#define EL_BASE qpolynomial |
Definition at line 37 of file isl_polynomial.c.
#define EL_BASE pw_qpolynomial |
Definition at line 37 of file isl_polynomial.c.
#define EL_IS_ZERO is_zero |
Definition at line 3100 of file isl_polynomial.c.
#define FIELD qp |
Definition at line 3106 of file isl_polynomial.c.
#define IS_ZERO is_zero |
Definition at line 3104 of file isl_polynomial.c.
#define isl_qpolynomial_involves_nan isl_qpolynomial_is_nan |
Definition at line 3093 of file isl_polynomial.c.
#define PEEK_SPACE peek_domain_space |
Definition at line 468 of file isl_polynomial.c.
#define PW isl_pw_qpolynomial |
Definition at line 3096 of file isl_polynomial.c.
#define TYPE isl_qpolynomial |
Definition at line 4057 of file isl_polynomial.c.
#define TYPE isl_qpolynomial |
Definition at line 4057 of file isl_polynomial.c.
#define TYPE isl_term |
Definition at line 4057 of file isl_polynomial.c.
#define ZERO zero |
Definition at line 3102 of file isl_polynomial.c.
|
static |
Definition at line 1469 of file isl_polynomial.c.
References isl_qpolynomial::div, isl_seq_cmp(), isl_seq_last_non_zero(), isl_mat::n_col, and isl_mat::row.
Referenced by div_sort_cmp().
|
static |
Definition at line 1443 of file isl_polynomial.c.
References equal, isl_assert, isl_bool_error, and isl_mat_is_equal().
Referenced by isl_qpolynomial_add(), and isl_qpolynomial_mul().
|
static |
Definition at line 4831 of file isl_polynomial.c.
References f, fn, isl_basic_set_factorizer(), isl_basic_set_free(), isl_basic_set_get_space(), isl_factorizer_every_factor_basic_set(), isl_factorizer_free(), isl_pw_qpolynomial_alloc(), isl_pw_qpolynomial_free(), isl_qpolynomial_one_on_domain(), isl_set_universe(), isl_space_copy(), isl_space_params(), multiplicative_call_base(), multiplicative_call_factor_pw_qpolynomial(), isl_multiplicative_call_data_pw_qpolynomial::pwqp, and set.
Referenced by isl_basic_set_multiplicative_call().
|
static |
Definition at line 4748 of file isl_polynomial.c.
References isl_basic_set_get_space(), isl_basic_set_is_empty(), isl_basic_set_params(), isl_bool_true, isl_pw_qpolynomial_alloc(), isl_qpolynomial_infty_on_domain(), isl_qpolynomial_one_on_domain(), isl_qpolynomial_zero_on_domain(), and isl_set_from_basic_set().
Referenced by isl_basic_set_multiplicative_call().
|
static |
Definition at line 1487 of file isl_polynomial.c.
References cmp_row(), isl_div_sort_info::div, and isl_div_sort_info::row.
Referenced by sort_divs().
|
static |
Definition at line 535 of file isl_polynomial.c.
References isl_dim_in, isl_dim_set, and type.
Referenced by isl_qpolynomial_coeff(), isl_qpolynomial_dim(), isl_qpolynomial_drop_dims(), isl_qpolynomial_insert_dims(), isl_qpolynomial_involves_dims(), isl_qpolynomial_set_dim_name(), and isl_qpolynomial_substitute().
|
static |
Definition at line 3269 of file isl_polynomial.c.
References isl_point_free(), isl_point_get_ctx(), isl_qpolynomial_free(), and isl_val_nan().
Referenced by isl_qpolynomial_eval().
|
static |
Definition at line 1584 of file isl_polynomial.c.
References expand(), isl_poly_as_rec(), isl_poly_cow(), isl_poly_free(), isl_poly_is_cst(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by expand(), isl_qpolynomial_insert_dims(), isl_qpolynomial_lift(), and with_merged_divs().
|
static |
Definition at line 4277 of file isl_polynomial.c.
References isl_calloc_array, isl_dim_all, isl_dim_param, isl_dim_set, isl_set_dim(), isl_set_eliminate(), isl_set_fix_si(), isl_set_free(), set, and set_active().
Referenced by isl_qpolynomial_opt_on_domain().
|
static |
Definition at line 2530 of file isl_polynomial.c.
References isl_int_add, isl_int_sub_ui, isl_mat_col_mul(), isl_mat_col_neg(), isl_seq_neg(), and total().
Referenced by reduce_divs().
__isl_give isl_basic_map * isl_basic_map_from_qpolynomial | ( | __isl_take isl_qpolynomial * | qp | ) |
Definition at line 5180 of file isl_polynomial.c.
References aff, isl_space::ctx, isl_qpolynomial::dim, isl_basic_map::div, isl_qpolynomial::div, isl_basic_map::eq, isl_basic_map_add_div_constraints(), isl_basic_map_alloc_div(), isl_basic_map_alloc_equality(), isl_basic_map_alloc_space(), isl_basic_map_finalize(), isl_basic_map_free(), isl_die, isl_dim_out, isl_error_invalid, isl_int_neg, isl_int_set_si, isl_poly_is_affine(), isl_qpolynomial_extract_affine(), isl_qpolynomial_free(), isl_qpolynomial_get_space(), isl_seq_cpy(), isl_space_offset(), isl_vec_free(), isl_mat::n_col, isl_mat::n_row, isl_qpolynomial::poly, pos(), isl_to_poly_data::qp, and isl_mat::row.
__isl_give isl_pw_qpolynomial * isl_basic_set_multiplicative_call | ( | __isl_take isl_basic_set * | bset, |
__isl_give isl_pw_qpolynomial *(*)(__isl_take isl_basic_set *bset) | fn | ||
) |
Definition at line 4878 of file isl_polynomial.c.
References compressed_multiplicative_call(), constant_on_domain(), fn, isl_basic_set_dim(), isl_basic_set_free(), isl_basic_set_full_compression(), isl_basic_set_is_bounded(), isl_basic_set_plain_is_empty(), isl_dim_set, isl_morph_basic_set(), isl_morph_copy(), isl_morph_dom_params(), isl_morph_inverse(), isl_morph_ran_params(), isl_pw_qpolynomial_morph_domain(), and pwqp.
Referenced by multiplicative_call_base().
__isl_give isl_poly * isl_poly_add_isl_int | ( | __isl_take isl_poly * | poly, |
isl_int | v | ||
) |
Definition at line 944 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_add_isl_int(), isl_poly_as_rec(), isl_poly_cow(), isl_poly_cst_add_isl_int(), isl_poly_free(), isl_poly_is_cst(), isl_poly_rec::p, and poly.
Referenced by isl_poly_add_isl_int(), and isl_qpolynomial_add_isl_int().
__isl_give isl_poly_rec * isl_poly_alloc_rec | ( | isl_ctx * | ctx, |
int | var, | ||
int | size | ||
) |
Definition at line 392 of file isl_polynomial.c.
References isl_poly::ctx, isl_assert, isl_calloc, isl_ctx_ref(), isl_poly_rec::n, isl_poly_rec::poly, isl_poly::ref, isl_poly_rec::size, size, var(), and isl_poly::var.
Referenced by isl_poly_dup_rec(), isl_poly_mul_rec(), and isl_poly_var_pow().
__isl_keep isl_poly_cst * isl_poly_as_cst | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 59 of file isl_polynomial.c.
References isl_assert, and poly.
Referenced by isl_poly_cst_add_isl_int(), isl_poly_cst_mul_isl_int(), isl_poly_cst_scale_val(), isl_poly_dup_cst(), isl_poly_foreach_term(), isl_poly_get_constant_val(), isl_poly_is_equal(), isl_poly_is_infty(), isl_poly_is_nan(), isl_poly_is_neginfty(), isl_poly_is_negone(), isl_poly_is_one(), isl_poly_is_zero(), isl_poly_mul_cst(), isl_poly_plain_cmp(), isl_poly_sgn(), isl_poly_sum_cst(), isl_poly_update_affine(), isl_poly_var_pow(), isl_qpolynomial_cst_on_domain(), isl_qpolynomial_cst_sign(), isl_qpolynomial_is_cst(), isl_qpolynomial_rat_cst_on_domain(), isl_qpolynomial_val_on_domain(), poly_print_cst(), and poly_update_den().
__isl_keep isl_poly_rec * isl_poly_as_rec | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 69 of file isl_polynomial.c.
References isl_assert, and poly.
Referenced by expand(), isl_poly_add_isl_int(), isl_poly_coeff(), isl_poly_degree(), isl_poly_drop(), isl_poly_dup_rec(), isl_poly_eval(), isl_poly_foreach_term(), isl_poly_get_constant_val(), isl_poly_homogenize(), isl_poly_is_affine(), isl_poly_is_equal(), isl_poly_mul(), isl_poly_mul_isl_int(), isl_poly_mul_rec(), isl_poly_plain_cmp(), isl_poly_scale_val(), isl_poly_subs(), isl_poly_sum(), isl_poly_update_affine(), isl_qpolynomial_sign(), poly_print(), poly_set_active(), poly_update_den(), reorder(), and replace_by_constant_term().
int isl_poly_cmp | ( | __isl_keep isl_poly_cst * | cst1, |
__isl_keep isl_poly_cst * | cst2 | ||
) |
Definition at line 3310 of file isl_polynomial.c.
References cmp(), isl_int_clear, isl_int_init, isl_int_mul, isl_int_sgn, isl_int_submul, and t.
__isl_give isl_poly * isl_poly_coeff | ( | __isl_keep isl_poly * | poly, |
unsigned | pos, | ||
int | deg | ||
) |
Definition at line 3717 of file isl_polynomial.c.
References isl_poly_as_rec(), isl_poly_coeff(), isl_poly_copy(), isl_poly_cow(), isl_poly_free(), isl_poly_is_cst(), isl_poly_zero(), isl_poly_rec::n, n, isl_poly_rec::p, poly, pos(), and t.
Referenced by isl_poly_coeff(), and isl_qpolynomial_coeff().
__isl_give isl_poly * isl_poly_copy | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 639 of file isl_polynomial.c.
References poly.
Referenced by isl_poly_coeff(), isl_poly_dup_rec(), isl_poly_eval(), isl_poly_mul(), isl_poly_mul_rec(), isl_poly_pow(), isl_poly_subs(), isl_poly_sum(), isl_qpolynomial_add(), isl_qpolynomial_as_polynomial_on_domain(), isl_qpolynomial_dup(), isl_qpolynomial_eval(), isl_qpolynomial_mul(), isl_qpolynomial_sign(), reorder(), and replace_by_constant_term().
__isl_give isl_poly * isl_poly_cow | ( | __isl_take isl_poly * | poly | ) |
Definition at line 706 of file isl_polynomial.c.
References isl_poly_dup(), and poly.
Referenced by expand(), isl_poly_add_isl_int(), isl_poly_coeff(), isl_poly_cst_add_isl_int(), isl_poly_cst_mul_isl_int(), isl_poly_cst_scale_val(), isl_poly_drop(), isl_poly_homogenize(), isl_poly_mul(), isl_poly_mul_cst(), isl_poly_mul_isl_int(), isl_poly_scale_val(), isl_poly_sum(), and isl_poly_sum_cst().
__isl_give isl_poly * isl_poly_cst_add_isl_int | ( | __isl_take isl_poly * | poly, |
isl_int | v | ||
) |
Definition at line 928 of file isl_polynomial.c.
References isl_int_addmul, isl_poly_as_cst(), isl_poly_cow(), and poly.
Referenced by isl_poly_add_isl_int().
__isl_give isl_poly_cst * isl_poly_cst_alloc | ( | isl_ctx * | ctx | ) |
Definition at line 289 of file isl_polynomial.c.
References isl_alloc_type, isl_ctx_ref(), and isl_int_init.
Referenced by isl_poly_infty(), isl_poly_nan(), isl_poly_neginfty(), isl_poly_one(), isl_poly_rat_cst(), and isl_poly_zero().
__isl_give isl_poly * isl_poly_cst_mul_isl_int | ( | __isl_take isl_poly * | poly, |
isl_int | v | ||
) |
Definition at line 970 of file isl_polynomial.c.
References isl_int_mul, isl_poly_as_cst(), isl_poly_cow(), isl_poly_free(), isl_poly_is_zero(), and poly.
Referenced by isl_poly_mul_isl_int().
|
static |
Definition at line 735 of file isl_polynomial.c.
References gcd(), isl_int_clear, isl_int_divexact, isl_int_gcd, isl_int_init, isl_int_is_one, and isl_int_is_zero.
Referenced by isl_poly_cst_scale_val(), isl_poly_mul_cst(), and isl_poly_sum_cst().
|
static |
Definition at line 1024 of file isl_polynomial.c.
References isl_int_mul, isl_poly_as_cst(), isl_poly_cow(), isl_poly_cst_reduce(), isl_poly_free(), isl_poly_is_zero(), and poly.
Referenced by isl_poly_scale_val().
int isl_poly_degree | ( | __isl_keep isl_poly * | poly, |
int | first, | ||
int | last | ||
) |
Definition at line 3660 of file isl_polynomial.c.
References isl_poly_as_rec(), isl_poly_degree(), isl_poly_is_cst(), isl_poly_is_zero(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by isl_poly_degree(), and isl_qpolynomial_degree().
__isl_give isl_poly * isl_poly_drop | ( | __isl_take isl_poly * | poly, |
unsigned | first, | ||
unsigned | n | ||
) |
Definition at line 2843 of file isl_polynomial.c.
References isl_poly_as_rec(), isl_poly_cow(), isl_poly_drop(), isl_poly_free(), isl_poly_rec::n, n, isl_poly_rec::p, poly, and replace_by_constant_term().
Referenced by isl_poly_drop(), and isl_qpolynomial_drop_dims().
__isl_give isl_poly * isl_poly_dup | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 693 of file isl_polynomial.c.
References isl_poly_dup_cst(), isl_poly_dup_rec(), isl_poly_is_cst(), and poly.
Referenced by isl_poly_cow().
__isl_give isl_poly * isl_poly_dup_cst | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 648 of file isl_polynomial.c.
References dup(), isl_int_set, isl_poly_as_cst(), isl_poly_zero(), and poly.
Referenced by isl_poly_dup().
__isl_give isl_poly * isl_poly_dup_rec | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 666 of file isl_polynomial.c.
References dup(), isl_poly_alloc_rec(), isl_poly_as_rec(), isl_poly_copy(), isl_poly_free(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by isl_poly_dup().
__isl_give isl_val * isl_poly_eval | ( | __isl_take isl_poly * | poly, |
__isl_take isl_vec * | vec | ||
) |
Definition at line 3219 of file isl_polynomial.c.
References isl_assert, isl_poly_as_rec(), isl_poly_copy(), isl_poly_eval(), isl_poly_free(), isl_poly_get_constant_val(), isl_poly_is_cst(), isl_val_add(), isl_val_copy(), isl_val_free(), isl_val_mul(), isl_val_rat_from_isl_int(), isl_vec_copy(), isl_vec_free(), isl_poly_rec::n, isl_poly_rec::p, poly, and res.
Referenced by isl_poly_eval(), and isl_qpolynomial_eval().
__isl_give isl_term * isl_poly_foreach_term | ( | __isl_keep isl_poly * | poly, |
isl_stat(*)(__isl_take isl_term *term, void *user) | fn, | ||
__isl_take isl_term * | term, | ||
void * | user | ||
) |
Definition at line 4096 of file isl_polynomial.c.
References fn, isl_die, isl_error_invalid, isl_int_set, isl_poly_as_cst(), isl_poly_as_rec(), isl_poly_foreach_term(), isl_poly_is_cst(), isl_poly_is_infty(), isl_poly_is_nan(), isl_poly_is_neginfty(), isl_poly_is_zero(), isl_term_copy(), isl_term_cow(), isl_term_free(), isl_term_get_ctx(), isl_poly_rec::n, isl_poly_rec::p, poly, and user.
Referenced by isl_poly_foreach_term(), and isl_qpolynomial_foreach_term().
__isl_null isl_poly * isl_poly_free | ( | __isl_take isl_poly * | poly | ) |
Definition at line 717 of file isl_polynomial.c.
References isl_ctx_deref(), poly, poly_free_cst(), and poly_free_rec().
Referenced by expand(), isl_poly_add_isl_int(), isl_poly_coeff(), isl_poly_cst_mul_isl_int(), isl_poly_cst_scale_val(), isl_poly_drop(), isl_poly_dup_rec(), isl_poly_eval(), isl_poly_homogenize(), isl_poly_mul(), isl_poly_mul_cst(), isl_poly_mul_isl_int(), isl_poly_mul_rec(), isl_poly_pow(), isl_poly_scale_val(), isl_poly_subs(), isl_poly_sum(), isl_poly_sum_cst(), isl_poly_var_pow(), isl_qpolynomial_alloc(), isl_qpolynomial_free(), isl_qpolynomial_morph_domain(), isl_qpolynomial_substitute_equalities_lifted(), make_divs_pos(), poly_free_rec(), reduce_divs(), reorder(), replace_by_constant_term(), replace_by_zero(), and substitute_div().
__isl_give isl_poly * isl_poly_from_affine | ( | isl_ctx * | ctx, |
isl_int * | f, | ||
isl_int | denom, | ||
unsigned | len | ||
) |
Definition at line 2331 of file isl_polynomial.c.
References f, isl_assert, isl_int_is_zero, isl_poly_mul(), isl_poly_rat_cst(), isl_poly_sum(), isl_poly_var_pow(), poly, and t.
Referenced by isl_qpolynomial_from_aff(), isl_qpolynomial_from_affine(), isl_qpolynomial_morph_domain(), isl_qpolynomial_substitute_equalities_lifted(), make_divs_pos(), qp_drop_floors(), reduce_divs(), and substitute_non_divs().
|
static |
Definition at line 2009 of file isl_polynomial.c.
References isl_bool_false, isl_poly_as_cst(), isl_poly_as_rec(), isl_poly_is_cst(), isl_val_rat_from_isl_int(), isl_poly_rec::p, and poly.
Referenced by isl_poly_eval(), and isl_qpolynomial_get_constant_val().
__isl_give isl_poly * isl_poly_homogenize | ( | __isl_take isl_poly * | poly, |
int | deg, | ||
int | target, | ||
int | first, | ||
int | last | ||
) |
Definition at line 3808 of file isl_polynomial.c.
References isl_poly_as_rec(), isl_poly_cow(), isl_poly_free(), isl_poly_homogenize(), isl_poly_is_cst(), isl_poly_is_zero(), isl_poly_mul(), isl_poly_var_pow(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by isl_poly_homogenize(), and isl_qpolynomial_homogenize().
__isl_give isl_poly * isl_poly_infty | ( | isl_ctx * | ctx | ) |
Definition at line 336 of file isl_polynomial.c.
References isl_int_set_si, and isl_poly_cst_alloc().
Referenced by isl_qpolynomial_infty_on_domain().
isl_bool isl_poly_is_affine | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 2045 of file isl_polynomial.c.
References isl_assert, isl_bool_error, isl_bool_false, isl_bool_true, isl_poly_as_rec(), isl_poly_is_affine(), isl_poly_is_cst(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by isl_basic_map_from_qpolynomial(), isl_poly_is_affine(), and isl_qpolynomial_is_affine().
isl_bool isl_poly_is_cst | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 51 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), and poly.
Referenced by expand(), isl_poly_add_isl_int(), isl_poly_coeff(), isl_poly_degree(), isl_poly_dup(), isl_poly_eval(), isl_poly_foreach_term(), isl_poly_get_constant_val(), isl_poly_homogenize(), isl_poly_is_affine(), isl_poly_is_equal(), isl_poly_is_infty(), isl_poly_is_nan(), isl_poly_is_neginfty(), isl_poly_is_negone(), isl_poly_is_one(), isl_poly_is_zero(), isl_poly_mul(), isl_poly_mul_isl_int(), isl_poly_plain_cmp(), isl_poly_scale_val(), isl_poly_sgn(), isl_poly_subs(), isl_poly_sum(), isl_qpolynomial_is_cst(), isl_qpolynomial_opt_on_domain(), poly_print(), poly_set_active(), poly_update_den(), and reorder().
isl_bool isl_poly_is_equal | ( | __isl_keep isl_poly * | poly1, |
__isl_keep isl_poly * | poly2 | ||
) |
Definition at line 132 of file isl_polynomial.c.
References isl_poly_cst::d, isl_bool_error, isl_bool_false, isl_bool_ok(), isl_bool_true, isl_int_eq, isl_poly_as_cst(), isl_poly_as_rec(), isl_poly_is_cst(), isl_poly_is_equal(), isl_poly_cst::n, isl_poly_rec::n, and isl_poly_rec::p.
Referenced by isl_poly_is_equal(), and isl_qpolynomial_plain_is_equal().
isl_bool isl_poly_is_infty | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 223 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), isl_int_is_pos, isl_int_is_zero, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by isl_poly_foreach_term(), isl_poly_mul(), isl_poly_sum(), and isl_qpolynomial_is_infty().
isl_bool isl_poly_is_nan | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 207 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), isl_int_is_zero, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by isl_poly_foreach_term(), isl_poly_mul(), isl_poly_sum(), and isl_qpolynomial_is_nan().
isl_bool isl_poly_is_neginfty | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 239 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), isl_int_is_neg, isl_int_is_zero, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by isl_poly_foreach_term(), isl_poly_mul(), isl_poly_sum(), and isl_qpolynomial_is_neginfty().
isl_bool isl_poly_is_negone | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 273 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), isl_int_is_negone, isl_int_is_one, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by poly_print().
isl_bool isl_poly_is_one | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 255 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), isl_int_eq, isl_int_is_pos, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by isl_poly_mul(), isl_qpolynomial_is_one(), and poly_print().
isl_bool isl_poly_is_zero | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 175 of file isl_polynomial.c.
References isl_bool_error, isl_bool_ok(), isl_int_is_pos, isl_int_is_zero, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by isl_poly_cst_mul_isl_int(), isl_poly_cst_scale_val(), isl_poly_degree(), isl_poly_foreach_term(), isl_poly_homogenize(), isl_poly_mul(), isl_poly_sum(), isl_qpolynomial_is_zero(), poly_print(), and poly_rec_n_non_zero().
__isl_give isl_poly * isl_poly_mul | ( | __isl_take isl_poly * | poly1, |
__isl_take isl_poly * | poly2 | ||
) |
Definition at line 1160 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_as_rec(), isl_poly_copy(), isl_poly_cow(), isl_poly_free(), isl_poly_is_cst(), isl_poly_is_infty(), isl_poly_is_nan(), isl_poly_is_neginfty(), isl_poly_is_one(), isl_poly_is_zero(), isl_poly_mul(), isl_poly_mul_cst(), isl_poly_mul_rec(), isl_poly_nan(), isl_poly_rec::n, and isl_poly_rec::p.
Referenced by isl_poly_from_affine(), isl_poly_homogenize(), isl_poly_mul(), isl_poly_mul_rec(), isl_poly_pow(), isl_poly_subs(), isl_qpolynomial_from_term(), isl_qpolynomial_mul(), and reorder().
__isl_give isl_poly * isl_poly_mul_cst | ( | __isl_take isl_poly * | poly1, |
__isl_take isl_poly * | poly2 | ||
) |
Definition at line 1081 of file isl_polynomial.c.
References isl_poly_cst::d, isl_ctx::error, isl_int_mul, isl_poly_as_cst(), isl_poly_cow(), isl_poly_cst_reduce(), isl_poly_free(), and isl_poly_cst::n.
Referenced by isl_poly_mul().
__isl_give isl_poly * isl_poly_mul_isl_int | ( | __isl_take isl_poly * | poly, |
isl_int | v | ||
) |
Definition at line 993 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_as_rec(), isl_poly_cow(), isl_poly_cst_mul_isl_int(), isl_poly_free(), isl_poly_is_cst(), isl_poly_mul_isl_int(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by isl_poly_mul_isl_int(), and isl_qpolynomial_mul_isl_int().
__isl_give isl_poly * isl_poly_mul_rec | ( | __isl_take isl_poly * | poly1, |
__isl_take isl_poly * | poly2 | ||
) |
Definition at line 1107 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_alloc_rec(), isl_poly_as_rec(), isl_poly_copy(), isl_poly_free(), isl_poly_mul(), isl_poly_sum(), isl_poly_zero(), isl_poly_rec::n, isl_poly_rec::p, poly, res, and size.
Referenced by isl_poly_mul().
__isl_give isl_poly * isl_poly_nan | ( | isl_ctx * | ctx | ) |
Definition at line 364 of file isl_polynomial.c.
References isl_int_set_si, and isl_poly_cst_alloc().
Referenced by isl_poly_mul(), and isl_qpolynomial_nan_on_domain().
__isl_give isl_poly * isl_poly_neginfty | ( | isl_ctx * | ctx | ) |
Definition at line 350 of file isl_polynomial.c.
References isl_int_set_si, and isl_poly_cst_alloc().
Referenced by isl_qpolynomial_neginfty_on_domain().
__isl_give isl_poly * isl_poly_one | ( | isl_ctx * | ctx | ) |
Definition at line 322 of file isl_polynomial.c.
References isl_int_set_si, and isl_poly_cst_alloc().
Referenced by isl_poly_pow(), and isl_qpolynomial_one_on_domain().
|
static |
Definition at line 84 of file isl_polynomial.c.
References cmp(), isl_poly_cst::d, isl_int_cmp, isl_poly_as_cst(), isl_poly_as_rec(), isl_poly_is_cst(), isl_poly_plain_cmp(), isl_poly_cst::n, isl_poly_rec::n, and isl_poly_rec::p.
Referenced by isl_poly_plain_cmp(), and isl_qpolynomial_plain_cmp().
__isl_give isl_poly * isl_poly_pow | ( | __isl_take isl_poly * | poly, |
unsigned | power | ||
) |
Definition at line 1263 of file isl_polynomial.c.
References isl_poly_copy(), isl_poly_free(), isl_poly_mul(), isl_poly_one(), poly, power(), and res.
Referenced by isl_qpolynomial_pow().
__isl_give isl_poly * isl_poly_rat_cst | ( | isl_ctx * | ctx, |
isl_int | n, | ||
isl_int | d | ||
) |
Definition at line 378 of file isl_polynomial.c.
References isl_int_set, isl_poly_cst_alloc(), and n.
Referenced by isl_poly_from_affine(), isl_qpolynomial_from_term(), and set_div().
|
static |
Definition at line 1051 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_as_rec(), isl_poly_cow(), isl_poly_cst_scale_val(), isl_poly_free(), isl_poly_is_cst(), isl_poly_scale_val(), isl_poly_rec::n, isl_poly_rec::p, and poly.
Referenced by isl_poly_scale_val(), and isl_qpolynomial_scale_val().
int isl_poly_sgn | ( | __isl_keep isl_poly * | poly | ) |
Definition at line 191 of file isl_polynomial.c.
References isl_int_sgn, isl_poly_as_cst(), isl_poly_is_cst(), and poly.
Referenced by isl_qpolynomial_sgn().
__isl_give isl_poly * isl_poly_subs | ( | __isl_take isl_poly * | poly, |
unsigned | first, | ||
unsigned | n, | ||
__isl_keep isl_poly ** | subs | ||
) |
Definition at line 2286 of file isl_polynomial.c.
References isl_ctx::error, isl_assert, isl_poly_as_rec(), isl_poly_copy(), isl_poly_free(), isl_poly_is_cst(), isl_poly_mul(), isl_poly_subs(), isl_poly_sum(), isl_poly_var_pow(), isl_poly_rec::n, n, isl_poly_rec::p, poly, res, and t.
Referenced by isl_poly_subs(), isl_qpolynomial_morph_domain(), isl_qpolynomial_substitute(), isl_qpolynomial_substitute_equalities_lifted(), make_divs_pos(), reduce_divs(), and substitute_div().
__isl_give isl_poly * isl_poly_sum | ( | __isl_take isl_poly * | poly1, |
__isl_take isl_poly * | poly2 | ||
) |
Definition at line 809 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_as_rec(), isl_poly_copy(), isl_poly_cow(), isl_poly_free(), isl_poly_is_cst(), isl_poly_is_infty(), isl_poly_is_nan(), isl_poly_is_neginfty(), isl_poly_is_zero(), isl_poly_sum(), isl_poly_sum_cst(), isl_poly_rec::n, isl_poly_rec::p, replace_by_constant_term(), and replace_by_zero().
Referenced by isl_poly_from_affine(), isl_poly_mul_rec(), isl_poly_subs(), isl_poly_sum(), isl_qpolynomial_add(), and reorder().
__isl_give isl_poly * isl_poly_sum_cst | ( | __isl_take isl_poly * | poly1, |
__isl_take isl_poly * | poly2 | ||
) |
Definition at line 748 of file isl_polynomial.c.
References isl_poly_cst::d, isl_int_add, isl_int_addmul, isl_int_eq, isl_int_mul, isl_poly_as_cst(), isl_poly_cow(), isl_poly_cst_reduce(), isl_poly_free(), and isl_poly_cst::n.
Referenced by isl_poly_sum().
int isl_poly_update_affine | ( | __isl_keep isl_poly * | poly, |
__isl_keep isl_vec * | aff | ||
) |
Definition at line 2103 of file isl_polynomial.c.
References aff, isl_assert, isl_poly_as_cst(), isl_poly_as_rec(), isl_poly_update_affine(), isl_poly_rec::n, isl_poly_rec::p, poly, and update_coeff().
Referenced by isl_poly_update_affine(), and isl_qpolynomial_extract_affine().
__isl_give isl_poly * isl_poly_var_pow | ( | isl_ctx * | ctx, |
int | pos, | ||
int | power | ||
) |
Definition at line 1380 of file isl_polynomial.c.
References isl_int_set_si, isl_poly_alloc_rec(), isl_poly_as_cst(), isl_poly_free(), isl_poly_zero(), isl_poly_rec::n, isl_poly_rec::p, isl_poly_rec::poly, pos(), and power().
Referenced by isl_poly_from_affine(), isl_poly_homogenize(), isl_poly_subs(), isl_qpolynomial_from_term(), isl_qpolynomial_morph_domain(), isl_qpolynomial_var_pow_on_domain(), and reorder().
__isl_give isl_poly * isl_poly_zero | ( | isl_ctx * | ctx | ) |
Definition at line 308 of file isl_polynomial.c.
References isl_int_set_si, and isl_poly_cst_alloc().
Referenced by isl_poly_coeff(), isl_poly_dup_cst(), isl_poly_mul_rec(), isl_poly_var_pow(), isl_qpolynomial_zero_on_domain(), and replace_by_zero().
__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_add | ( | __isl_take isl_pw_qpolynomial * | pwqp1, |
__isl_take isl_pw_qpolynomial * | pwqp2 | ||
) |
Definition at line 3147 of file isl_polynomial.c.
Referenced by isl_obj_pw_qp_add(), and read_term().
__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_from_pw_aff | ( | __isl_take isl_pw_aff * | pwaff | ) |
Definition at line 3534 of file isl_polynomial.c.
References isl_aff_copy(), isl_pw_aff_free(), isl_pw_aff_get_space(), isl_pw_qpolynomial_add_piece(), isl_qpolynomial_from_aff(), isl_set_copy(), and pwqp.
Referenced by read_factor().
int isl_pw_qpolynomial_is_one | ( | __isl_keep isl_pw_qpolynomial * | pwqp | ) |
Definition at line 3133 of file isl_polynomial.c.
References isl_qpolynomial_is_one(), isl_set_plain_is_universe(), and pwqp.
Referenced by isl_pw_qpolynomial_mul().
__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_mul | ( | __isl_take isl_pw_qpolynomial * | pwqp1, |
__isl_take isl_pw_qpolynomial * | pwqp2 | ||
) |
Definition at line 3154 of file isl_polynomial.c.
References isl_assert, isl_pw_qpolynomial_add_piece(), isl_pw_qpolynomial_free(), isl_pw_qpolynomial_is_one(), isl_pw_qpolynomial_is_zero(), isl_qpolynomial_copy(), isl_qpolynomial_mul(), isl_set_copy(), isl_set_free(), isl_set_intersect(), isl_set_plain_is_empty(), isl_space_copy(), isl_space_is_equal(), n, and res.
Referenced by isl_union_pw_qpolynomial_mul(), multiplicative_call_factor_pw_qpolynomial(), and read_factor().
__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_pow | ( | __isl_take isl_pw_qpolynomial * | pwqp, |
unsigned | power | ||
) |
Definition at line 1904 of file isl_polynomial.c.
References isl_pw_qpolynomial_cow(), isl_pw_qpolynomial_free(), isl_qpolynomial_pow(), power(), and pwqp.
Referenced by read_factor().
__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_split_periods | ( | __isl_take isl_pw_qpolynomial * | pwqp, |
int | max_periods | ||
) |
Definition at line 4719 of file isl_polynomial.c.
References isl_pw_qpolynomial_foreach_piece(), isl_pw_qpolynomial_free(), isl_pw_qpolynomial_get_space(), isl_pw_qpolynomial_zero(), isl_split_periods_data::max_periods, pwqp, isl_split_periods_data::res, and split_periods().
Referenced by test_split_periods().
__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_to_polynomial | ( | __isl_take isl_pw_qpolynomial * | pwqp, |
int | sign | ||
) |
Definition at line 5126 of file isl_polynomial.c.
References isl_pw_qpolynomial_add_disjoint(), isl_pw_qpolynomial_alloc(), isl_pw_qpolynomial_free(), isl_pw_qpolynomial_get_space(), isl_pw_qpolynomial_zero(), isl_qpolynomial_copy(), isl_set_copy(), isl_set_foreach_orthant(), pwqp, pwqp_drop_floors(), isl_to_poly_data::qp, isl_to_poly_data::res, isl_to_poly_data::sign, t, and to_polynomial_on_orthant().
Referenced by poly_entry().
__isl_give isl_qpolynomial * isl_qpolynomial_add | ( | __isl_take isl_qpolynomial * | qp1, |
__isl_take isl_qpolynomial * | qp2 | ||
) |
Definition at line 1680 of file isl_polynomial.c.
References compatible_divs(), isl_poly_copy(), isl_poly_sum(), isl_qpolynomial_add(), isl_qpolynomial_cow(), isl_qpolynomial_free(), and with_merged_divs().
Referenced by add_qpolynomial(), bernstein_coefficients_cell(), collect_fixed_sign_terms(), isl_qpolynomial_add(), isl_qpolynomial_add_on_domain(), isl_qpolynomial_sign(), isl_qpolynomial_sub(), monotonicity(), propagate_on_bound_pair(), and to_polynomial_on_orthant().
__isl_give isl_qpolynomial * isl_qpolynomial_add_dims | ( | __isl_take isl_qpolynomial * | qp, |
enum isl_dim_type | type, | ||
unsigned | n | ||
) |
Definition at line 3376 of file isl_polynomial.c.
References isl_qpolynomial_dim(), isl_qpolynomial_free(), isl_qpolynomial_insert_dims(), n, pos(), and type.
Referenced by bernstein_coefficients_cell().
__isl_give isl_qpolynomial * isl_qpolynomial_add_isl_int | ( | __isl_take isl_qpolynomial * | qp, |
isl_int | v | ||
) |
Definition at line 1728 of file isl_polynomial.c.
References isl_int_is_zero, isl_poly_add_isl_int(), isl_qpolynomial_cow(), and isl_qpolynomial_free().
__isl_give isl_qpolynomial * isl_qpolynomial_add_on_domain | ( | __isl_keep isl_set * | dom, |
__isl_take isl_qpolynomial * | qp1, | ||
__isl_take isl_qpolynomial * | qp2 | ||
) |
Definition at line 1712 of file isl_polynomial.c.
References isl_qpolynomial_add(), isl_qpolynomial_gist(), and isl_set_copy().
__isl_give isl_qpolynomial * isl_qpolynomial_align_params | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_space * | model | ||
) |
Definition at line 4492 of file isl_polynomial.c.
References isl_parameter_alignment_reordering(), isl_qpolynomial_free(), isl_qpolynomial_peek_domain_space(), isl_qpolynomial_realign_domain(), isl_space_free(), isl_space_has_equal_params(), and isl_opt_data::qp.
__isl_give isl_qpolynomial * isl_qpolynomial_alloc | ( | __isl_take isl_space * | space, |
unsigned | n_div, | ||
__isl_take isl_poly * | poly | ||
) |
Definition at line 1287 of file isl_polynomial.c.
References isl_qpolynomial::dim, isl_qpolynomial::div, isl_calloc_type, isl_die, isl_dim_all, isl_error_invalid, isl_mat_alloc(), isl_poly_free(), isl_qpolynomial_free(), isl_space_dim(), isl_space_free(), isl_space_get_ctx(), isl_space_is_set(), isl_qpolynomial::poly, poly, isl_qpolynomial::ref, and total().
Referenced by isl_qpolynomial_as_polynomial_on_domain(), isl_qpolynomial_coeff(), isl_qpolynomial_dup(), isl_qpolynomial_from_aff(), isl_qpolynomial_from_affine(), isl_qpolynomial_from_term(), isl_qpolynomial_infty_on_domain(), isl_qpolynomial_nan_on_domain(), isl_qpolynomial_neginfty_on_domain(), isl_qpolynomial_one_on_domain(), isl_qpolynomial_sign(), isl_qpolynomial_var_pow_on_domain(), and isl_qpolynomial_zero_on_domain().
isl_stat isl_qpolynomial_as_polynomial_on_domain | ( | __isl_keep isl_qpolynomial * | qp, |
__isl_keep isl_basic_set * | bset, | ||
isl_stat(*)(__isl_take isl_basic_set *bset, __isl_take isl_qpolynomial *poly, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 3633 of file isl_polynomial.c.
References fn, isl_basic_set_copy(), isl_dim_set, isl_local_space_lift_basic_set(), isl_poly_copy(), isl_qpolynomial_alloc(), isl_qpolynomial_copy(), isl_qpolynomial_get_domain_local_space(), isl_space_add_dims(), isl_space_copy(), isl_stat_error, poly, and user.
Referenced by guarded_qp().
__isl_give isl_qpolynomial * isl_qpolynomial_coeff | ( | __isl_keep isl_qpolynomial * | qp, |
enum isl_dim_type | type, | ||
unsigned | t_pos, | ||
int | deg | ||
) |
Definition at line 3768 of file isl_polynomial.c.
References isl_qpolynomial::div, domain_type(), isl_die, isl_dim_out, isl_error_invalid, isl_mat_copy(), isl_mat_free(), isl_poly_coeff(), isl_qpolynomial_alloc(), isl_qpolynomial_free(), isl_space_copy(), poly, pos(), and type.
Referenced by extract_coefficients().
__isl_give isl_qpolynomial * isl_qpolynomial_copy | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 1321 of file isl_polynomial.c.
References isl_qpolynomial::ref.
Referenced by add_qpolynomial(), basic_guarded_poly_bound(), bernstein_coefficients_base(), bernstein_coefficients_cell(), has_sign(), isl_pw_qpolynomial_fold_from_pw_qpolynomial(), isl_pw_qpolynomial_mul(), isl_pw_qpolynomial_to_polynomial(), isl_qpolynomial_as_polynomial_on_domain(), isl_qpolynomial_sign(), merge_lists(), monotonicity(), opt_fn(), print_qpolynomial_c(), propagate_on_bound_pair(), split_div(), and to_polynomial_on_orthant().
__isl_give isl_qpolynomial * isl_qpolynomial_cow | ( | __isl_take isl_qpolynomial * | qp | ) |
Definition at line 1352 of file isl_polynomial.c.
References isl_qpolynomial_dup(), and isl_qpolynomial::ref.
Referenced by isl_qpolynomial_add(), isl_qpolynomial_add_isl_int(), isl_qpolynomial_drop_dims(), isl_qpolynomial_homogenize(), isl_qpolynomial_insert_dims(), isl_qpolynomial_lift(), isl_qpolynomial_morph_domain(), isl_qpolynomial_move_dims(), isl_qpolynomial_mul(), isl_qpolynomial_mul_isl_int(), isl_qpolynomial_pow(), isl_qpolynomial_realign_domain(), isl_qpolynomial_reset_domain_space(), isl_qpolynomial_scale_val(), isl_qpolynomial_set_dim_name(), isl_qpolynomial_substitute(), isl_qpolynomial_substitute_equalities_lifted(), make_divs_pos(), qp_drop_floors(), substitute_div(), and with_merged_divs().
__isl_give isl_qpolynomial * isl_qpolynomial_cst_on_domain | ( | __isl_take isl_space * | domain, |
isl_int | v | ||
) |
Definition at line 1965 of file isl_polynomial.c.
References domain, isl_int_set, isl_poly_as_cst(), isl_qpolynomial_zero_on_domain(), and isl_qpolynomial::poly.
Referenced by isl_qpolynomial_sign(), and read_factor().
int isl_qpolynomial_degree | ( | __isl_keep isl_qpolynomial * | poly | ) |
Definition at line 3702 of file isl_polynomial.c.
References isl_dim_set, isl_poly_degree(), isl_space_dim(), isl_space_offset(), and poly.
Referenced by bernstein_coefficients_base(), compressed_guarded_poly_bound(), extract_coefficients(), and isl_qpolynomial_homogenize().
isl_size isl_qpolynomial_dim | ( | __isl_keep isl_qpolynomial * | qp, |
enum isl_dim_type | type | ||
) |
Definition at line 543 of file isl_polynomial.c.
References domain_type(), isl_dim_out, isl_qpolynomial_domain_dim(), isl_size_error, and type.
Referenced by bernstein_coefficients_cell(), extract_coefficients(), isl_qpolynomial_add_dims(), and isl_qpolynomial_project_domain_on_params().
isl_size isl_qpolynomial_domain_dim | ( | __isl_keep isl_qpolynomial * | qp, |
enum isl_dim_type | type | ||
) |
Definition at line 504 of file isl_polynomial.c.
References isl_dim_all, isl_dim_div, isl_qpolynomial_domain_dim(), isl_qpolynomial_peek_domain_space(), isl_size_error, isl_space_dim(), and type.
Referenced by isl_qpolynomial_dim(), isl_qpolynomial_domain_dim(), isl_qpolynomial_extract_affine(), isl_qpolynomial_lift(), and reduce_divs().
unsigned isl_qpolynomial_domain_offset | ( | __isl_keep isl_qpolynomial * | qp, |
enum isl_dim_type | type | ||
) |
Definition at line 580 of file isl_polynomial.c.
References isl_dim_cst, isl_dim_div, isl_dim_param, isl_dim_set, isl_qpolynomial_domain_var_offset(), and type.
Referenced by reduce_divs().
|
static |
Definition at line 557 of file isl_polynomial.c.
References isl_die, isl_dim_all, isl_dim_cst, isl_dim_div, isl_dim_param, isl_dim_set, isl_error_invalid, isl_qpolynomial_get_ctx(), isl_qpolynomial_peek_domain_space(), isl_size_error, isl_space_dim(), isl_space_offset(), and type.
Referenced by isl_qpolynomial_domain_offset(), isl_qpolynomial_drop_dims(), isl_qpolynomial_involves_dims(), make_divs_pos(), remove_redundant_divs(), set_div(), sort_divs(), split_periods(), substitute_div(), and substitute_non_divs().
__isl_give isl_qpolynomial * isl_qpolynomial_drop_dims | ( | __isl_take isl_qpolynomial * | qp, |
enum isl_dim_type | type, | ||
unsigned | first, | ||
unsigned | n | ||
) |
Definition at line 2898 of file isl_polynomial.c.
References domain_type(), isl_assert, isl_die, isl_dim_out, isl_dim_param, isl_dim_set, isl_error_invalid, isl_mat_drop_cols(), isl_poly_drop(), isl_qpolynomial_cow(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_space_drop_dims(), isl_space_is_named_or_nested(), n, offset, and type.
Referenced by bernstein_coefficients_cell(), drop_dims(), isl_qpolynomial_project_domain_on_params(), propagate_on_bound_pair(), and propagate_on_domain().
__isl_give isl_qpolynomial * isl_qpolynomial_dup | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 1330 of file isl_polynomial.c.
References dup(), isl_mat_copy(), isl_mat_free(), isl_poly_copy(), isl_qpolynomial_alloc(), isl_qpolynomial_free(), and isl_space_copy().
Referenced by isl_qpolynomial_cow().
__isl_give isl_val * isl_qpolynomial_eval | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_point * | pnt | ||
) |
Definition at line 3280 of file isl_polynomial.c.
References eval_void(), isl_assert, isl_local_extend_point_vec(), isl_point_free(), isl_point_is_void(), isl_poly_copy(), isl_poly_eval(), isl_qpolynomial_free(), isl_space_is_equal(), and isl_vec_copy().
Referenced by isl_qpolynomial_fold_eval(), opt_fn(), and test_eval_2().
__isl_give isl_vec * isl_qpolynomial_extract_affine | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 2134 of file isl_polynomial.c.
References aff, isl_dim_all, isl_int_set_si, isl_poly_update_affine(), isl_qpolynomial_domain_dim(), isl_seq_clr(), isl_vec_alloc(), and isl_vec_free().
Referenced by isl_basic_map_from_qpolynomial(), and isl_qpolynomial_aff_sign().
isl_stat isl_qpolynomial_foreach_term | ( | __isl_keep isl_qpolynomial * | qp, |
isl_stat(*)(__isl_take isl_term *term, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 4163 of file isl_polynomial.c.
References fn, isl_mat_copy(), isl_poly_foreach_term(), isl_space_copy(), isl_stat_error, isl_stat_ok, isl_term_alloc(), isl_term_free(), and user.
Referenced by isl_qpolynomial_terms_of_sign().
__isl_null isl_qpolynomial * isl_qpolynomial_free | ( | __isl_take isl_qpolynomial * | qp | ) |
Definition at line 1363 of file isl_polynomial.c.
References isl_mat_free(), isl_poly_free(), and isl_space_free().
Referenced by bernstein_coefficients_base(), bernstein_coefficients_cell(), bernstein_coefficients_factors(), bernstein_coefficients_full_recursive(), compressed_guarded_poly_bound(), eval_void(), extract_coefficients(), guarded_poly_bound(), guarded_qp(), isl_basic_map_from_qpolynomial(), isl_qpolynomial_add(), isl_qpolynomial_add_dims(), isl_qpolynomial_add_isl_int(), isl_qpolynomial_align_params(), isl_qpolynomial_alloc(), isl_qpolynomial_bound_on_domain_bernstein(), isl_qpolynomial_coeff(), isl_qpolynomial_drop_dims(), isl_qpolynomial_dup(), isl_qpolynomial_eval(), isl_qpolynomial_fold_add_qpolynomial(), isl_qpolynomial_from_aff(), isl_qpolynomial_from_term(), isl_qpolynomial_homogenize(), isl_qpolynomial_insert_dims(), isl_qpolynomial_lift(), isl_qpolynomial_morph_domain(), isl_qpolynomial_move_dims(), isl_qpolynomial_mul(), isl_qpolynomial_mul_isl_int(), isl_qpolynomial_opt_on_domain(), isl_qpolynomial_pow(), isl_qpolynomial_project_domain_on_params(), isl_qpolynomial_realign_domain(), isl_qpolynomial_reset_domain_space(), isl_qpolynomial_scale_down_val(), isl_qpolynomial_scale_val(), isl_qpolynomial_set_dim_name(), isl_qpolynomial_sign(), isl_qpolynomial_substitute(), isl_qpolynomial_substitute_equalities(), isl_qpolynomial_substitute_equalities_lifted(), isl_qpolynomial_terms_of_sign(), isl_qpolynomial_val_on_domain(), make_divs_pos(), merge_lists(), monotonicity(), plug_in_at_pos(), print_qpolynomial_c(), propagate_on_domain(), qpolynomial_bound_on_domain_range(), qpolynomial_fold_covers_on_domain(), reduce_divs(), remove_redundant_divs(), set_div(), sort_divs(), split_div(), split_periods(), substitute_div(), substitute_non_divs(), to_polynomial_on_orthant(), unwrapped_guarded_poly_bound(), and with_merged_divs().
__isl_give isl_qpolynomial * isl_qpolynomial_from_aff | ( | __isl_take isl_aff * | aff | ) |
Definition at line 3501 of file isl_polynomial.c.
References aff, isl_qpolynomial::div, isl_aff_free(), isl_aff_get_ctx(), isl_aff_get_domain_space(), isl_mat_copy(), isl_mat_cow(), isl_mat_free(), isl_poly_from_affine(), isl_qpolynomial_alloc(), isl_qpolynomial_free(), poly, reduce_divs(), and remove_redundant_divs().
Referenced by isl_pw_qpolynomial_from_pw_aff(), isl_qpolynomial_from_constraint(), and test_eval_2().
__isl_give isl_qpolynomial * isl_qpolynomial_from_affine | ( | __isl_take isl_space * | space, |
isl_int * | f, | ||
isl_int | denom | ||
) |
Definition at line 3485 of file isl_polynomial.c.
References f, isl_dim_all, isl_poly_from_affine(), isl_qpolynomial_alloc(), isl_space_dim(), isl_space_domain(), and poly.
Referenced by vertex_coordinate().
__isl_give isl_qpolynomial * isl_qpolynomial_from_constraint | ( | __isl_take isl_constraint * | c, |
enum isl_dim_type | type, | ||
unsigned | pos | ||
) |
Definition at line 3559 of file isl_polynomial.c.
References aff, isl_constraint_free(), isl_constraint_get_bound(), isl_qpolynomial_from_aff(), pos(), and type.
Referenced by bound2poly().
__isl_give isl_qpolynomial * isl_qpolynomial_from_term | ( | __isl_take isl_term * | term | ) |
Definition at line 4182 of file isl_polynomial.c.
References isl_qpolynomial::div, isl_dim_all, isl_mat_copy(), isl_mat_free(), isl_poly_mul(), isl_poly_rat_cst(), isl_poly_var_pow(), isl_qpolynomial_alloc(), isl_qpolynomial_free(), isl_space_copy(), isl_term_dim(), isl_term_free(), n, and poly.
Referenced by collect_fixed_sign_terms().
__isl_give isl_val * isl_qpolynomial_get_constant_val | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 2036 of file isl_polynomial.c.
References isl_poly_get_constant_val().
Referenced by isl_qpolynomial_opt_on_domain().
isl_ctx * isl_qpolynomial_get_ctx | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 444 of file isl_polynomial.c.
Referenced by bernstein_coefficients_cell(), extract_coefficients(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_get_den(), isl_qpolynomial_morph_domain(), isl_qpolynomial_project_domain_on_params(), isl_qpolynomial_scale_down_val(), isl_qpolynomial_scale_val(), isl_qpolynomial_set_dim_name(), monotonicity(), reduce_divs(), remove_redundant_divs(), and substitute_div().
__isl_give isl_val * isl_qpolynomial_get_den | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 2242 of file isl_polynomial.c.
References isl_qpolynomial_get_ctx(), isl_val_free(), isl_val_one(), isl_val::n, and poly_update_den().
Referenced by print_qpolynomial_c().
|
static |
Definition at line 479 of file isl_polynomial.c.
References isl_local_space_alloc_div(), isl_mat_copy(), and isl_qpolynomial_get_domain_space().
Referenced by isl_qpolynomial_as_polynomial_on_domain(), and isl_qpolynomial_gist().
__isl_give isl_space * isl_qpolynomial_get_domain_space | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 459 of file isl_polynomial.c.
References isl_qpolynomial_peek_domain_space(), and isl_space_copy().
Referenced by bernstein_coefficients_cell(), extract_coefficients(), guarded_poly_bound(), isl_qpolynomial_fold_alloc(), isl_qpolynomial_get_domain_local_space(), isl_qpolynomial_gist_params(), isl_qpolynomial_project_domain_on_params(), isl_qpolynomial_scale_val(), isl_qpolynomial_terms_of_sign(), monotonicity(), plug_in_at_pos(), print_body_pw_qpolynomial(), and propagate_on_bound_pair().
__isl_give isl_space * isl_qpolynomial_get_space | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 491 of file isl_polynomial.c.
References isl_dim_out, isl_space_add_dims(), isl_space_copy(), and isl_space_from_domain().
Referenced by has_sign(), and isl_basic_map_from_qpolynomial().
__isl_give isl_qpolynomial * isl_qpolynomial_gist | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_set * | context | ||
) |
Definition at line 3060 of file isl_polynomial.c.
References aff, context, isl_local_space_lift_set(), isl_qpolynomial_get_domain_local_space(), isl_qpolynomial_substitute_equalities_lifted(), and isl_set_affine_hull().
Referenced by gist(), isl_qpolynomial_add_on_domain(), and isl_qpolynomial_gist_params().
__isl_give isl_qpolynomial * isl_qpolynomial_gist_params | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_set * | context | ||
) |
Definition at line 3073 of file isl_polynomial.c.
References context, isl_qpolynomial_get_domain_space(), isl_qpolynomial_gist(), isl_set_intersect_params(), and isl_set_universe().
__isl_give isl_qpolynomial * isl_qpolynomial_homogenize | ( | __isl_take isl_qpolynomial * | poly | ) |
Definition at line 3864 of file isl_polynomial.c.
References isl_dim_in, isl_dim_set, isl_poly_homogenize(), isl_qpolynomial_cow(), isl_qpolynomial_degree(), isl_qpolynomial_free(), isl_qpolynomial_insert_dims(), isl_space_dim(), isl_space_offset(), and poly.
Referenced by bernstein_coefficients_base().
__isl_give isl_qpolynomial * isl_qpolynomial_infty_on_domain | ( | __isl_take isl_space * | domain | ) |
Definition at line 1941 of file isl_polynomial.c.
References domain, isl_poly_infty(), and isl_qpolynomial_alloc().
Referenced by constant_on_domain(), read_factor(), and signed_infty().
__isl_give isl_qpolynomial * isl_qpolynomial_insert_dims | ( | __isl_take isl_qpolynomial * | qp, |
enum isl_dim_type | type, | ||
unsigned | first, | ||
unsigned | n | ||
) |
Definition at line 3322 of file isl_polynomial.c.
References domain_type(), expand(), isl_alloc_array, isl_die, isl_dim_out, isl_error_invalid, isl_mat_insert_zero_cols(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_space_insert_dims(), isl_space_is_named_or_nested(), n, pos(), total(), and type.
Referenced by insert_dims(), isl_qpolynomial_add_dims(), and isl_qpolynomial_homogenize().
|
static |
Definition at line 2711 of file isl_polynomial.c.
References domain_type(), isl_assert, isl_bool_error, isl_bool_false, isl_bool_true, isl_calloc_array, isl_dim_all, isl_dim_in, isl_dim_param, isl_qpolynomial_domain_var_offset(), isl_qpolynomial_peek_domain_space(), isl_space_dim(), n, offset, set_active(), and type.
Referenced by isl_qpolynomial_project_domain_on_params().
isl_bool isl_qpolynomial_is_affine | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 2072 of file isl_polynomial.c.
References isl_bool_error, isl_bool_false, and isl_poly_is_affine().
Referenced by isl_qpolynomial_sign().
isl_bool isl_qpolynomial_is_cst | ( | __isl_keep isl_qpolynomial * | qp, |
isl_int * | n, | ||
isl_int * | d | ||
) |
Definition at line 1982 of file isl_polynomial.c.
References isl_bool_error, isl_bool_true, isl_int_set, isl_poly_as_cst(), isl_poly_is_cst(), and n.
Referenced by isl_qpolynomial_sign(), and propagate_on_domain().
isl_bool isl_qpolynomial_is_infty | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 610 of file isl_polynomial.c.
References isl_bool_error, and isl_poly_is_infty().
Referenced by plug_in_at_pos().
isl_bool isl_qpolynomial_is_nan | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 605 of file isl_polynomial.c.
References isl_bool_error, and isl_poly_is_nan().
Referenced by isl_qpolynomial_cst_sign(), isl_qpolynomial_fold_is_nan(), and isl_qpolynomial_plain_is_equal().
isl_bool isl_qpolynomial_is_neginfty | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 615 of file isl_polynomial.c.
References isl_bool_error, and isl_poly_is_neginfty().
Referenced by plug_in_at_pos().
isl_bool isl_qpolynomial_is_one | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 600 of file isl_polynomial.c.
References isl_bool_error, and isl_poly_is_one().
Referenced by isl_pw_qpolynomial_is_one().
isl_bool isl_qpolynomial_is_zero | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 595 of file isl_polynomial.c.
References isl_bool_error, and isl_poly_is_zero().
Referenced by isl_qpolynomial_fold_add_qpolynomial(), and isl_qpolynomial_sign().
__isl_give isl_qpolynomial * isl_qpolynomial_lift | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_space * | space | ||
) |
Definition at line 4220 of file isl_polynomial.c.
References expand(), isl_alloc_array, isl_dim_all, isl_dim_set, isl_mat_insert_cols(), isl_qpolynomial_cow(), isl_qpolynomial_domain_dim(), isl_qpolynomial_free(), isl_seq_clr(), isl_space_dim(), isl_space_free(), isl_space_is_equal(), and total().
Referenced by lift().
__isl_give isl_qpolynomial * isl_qpolynomial_morph_domain | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_morph * | morph | ||
) |
Definition at line 4392 of file isl_polynomial.c.
References isl_qpolynomial::dim, isl_qpolynomial::div, isl_calloc_array, isl_mat_copy(), isl_mat_diag(), isl_mat_diagonal(), isl_mat_product(), isl_morph_check_applies(), isl_morph_free(), isl_poly_free(), isl_poly_from_affine(), isl_poly_subs(), isl_poly_var_pow(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), isl_qpolynomial_peek_domain_space(), isl_space_copy(), isl_space_free(), isl_mat::n_row, isl_qpolynomial::poly, and isl_opt_data::qp.
Referenced by morph_domain(), and unwrapped_guarded_poly_bound().
__isl_give isl_qpolynomial * isl_qpolynomial_move_dims | ( | __isl_take isl_qpolynomial * | qp, |
enum isl_dim_type | dst_type, | ||
unsigned | dst_pos, | ||
enum isl_dim_type | src_type, | ||
unsigned | src_pos, | ||
unsigned | n | ||
) |
Definition at line 3421 of file isl_polynomial.c.
References isl_die, isl_dim_in, isl_dim_out, isl_dim_set, isl_error_invalid, isl_mat_move_cols(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_space_is_named_or_nested(), isl_space_move_dims(), n, pos(), reorder(), reordering_move(), and sort_divs().
Referenced by guarded_poly_bound(), has_sign(), and move_dims().
__isl_give isl_qpolynomial * isl_qpolynomial_mul | ( | __isl_take isl_qpolynomial * | qp1, |
__isl_take isl_qpolynomial * | qp2 | ||
) |
Definition at line 1854 of file isl_polynomial.c.
References compatible_divs(), isl_poly_copy(), isl_poly_mul(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_qpolynomial_mul(), and with_merged_divs().
Referenced by bernstein_coefficients_cell(), extract_coefficients(), isl_pw_qpolynomial_mul(), isl_qpolynomial_mul(), and isl_qpolynomial_sign().
__isl_give isl_qpolynomial * isl_qpolynomial_mul_isl_int | ( | __isl_take isl_qpolynomial * | qp, |
isl_int | v | ||
) |
Definition at line 1757 of file isl_polynomial.c.
References isl_int_is_one, isl_int_is_zero, isl_poly_mul_isl_int(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_qpolynomial_zero_on_domain(), and isl_space_copy().
Referenced by isl_qpolynomial_neg(), isl_qpolynomial_scale(), and mul_int().
__isl_give isl_qpolynomial * isl_qpolynomial_nan_on_domain | ( | __isl_take isl_space * | domain | ) |
Definition at line 1957 of file isl_polynomial.c.
References domain, isl_poly_nan(), and isl_qpolynomial_alloc().
Referenced by read_factor().
__isl_give isl_qpolynomial * isl_qpolynomial_neg | ( | __isl_take isl_qpolynomial * | qp | ) |
Definition at line 1749 of file isl_polynomial.c.
References isl_qpolynomial_mul_isl_int().
Referenced by isl_qpolynomial_sub().
__isl_give isl_qpolynomial * isl_qpolynomial_neginfty_on_domain | ( | __isl_take isl_space * | domain | ) |
Definition at line 1949 of file isl_polynomial.c.
References domain, isl_poly_neginfty(), and isl_qpolynomial_alloc().
Referenced by signed_infty().
__isl_give isl_qpolynomial * isl_qpolynomial_one_on_domain | ( | __isl_take isl_space * | domain | ) |
Definition at line 1933 of file isl_polynomial.c.
References domain, isl_poly_one(), and isl_qpolynomial_alloc().
Referenced by compressed_multiplicative_call(), and constant_on_domain().
__isl_give isl_val * isl_qpolynomial_opt_on_domain | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_set * | set, | ||
int | max | ||
) |
Definition at line 4354 of file isl_polynomial.c.
References isl_opt_data::first, fix_inactive(), isl_poly_is_cst(), isl_qpolynomial_free(), isl_qpolynomial_get_constant_val(), isl_set_foreach_point(), isl_set_free(), isl_set_get_ctx(), isl_val_free(), isl_val_zero(), isl_opt_data::max, isl_opt_data::opt, opt_fn(), isl_qpolynomial::poly, isl_opt_data::qp, and set.
Referenced by isl_qpolynomial_fold_opt_on_domain().
|
static |
Definition at line 451 of file isl_polynomial.c.
Referenced by isl_qpolynomial_align_params(), isl_qpolynomial_domain_dim(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_get_domain_space(), isl_qpolynomial_involves_dims(), isl_qpolynomial_morph_domain(), and set_active().
int isl_qpolynomial_plain_cmp | ( | __isl_keep isl_qpolynomial * | qp1, |
__isl_keep isl_qpolynomial * | qp2 | ||
) |
Definition at line 2165 of file isl_polynomial.c.
References cmp(), isl_local_cmp(), isl_poly_plain_cmp(), and isl_space_cmp().
Referenced by isl_qpolynomial_fold_plain_cmp(), and qpolynomial_cmp().
isl_bool isl_qpolynomial_plain_is_equal | ( | __isl_keep isl_qpolynomial * | qp1, |
__isl_keep isl_qpolynomial * | qp2 | ||
) |
Definition at line 2192 of file isl_polynomial.c.
References equal, isl_bool_error, isl_bool_false, isl_mat_is_equal(), isl_poly_is_equal(), isl_qpolynomial_is_nan(), and isl_space_is_equal().
Referenced by isl_qpolynomial_list_plain_is_equal(), and merge_lists().
__isl_give isl_qpolynomial * isl_qpolynomial_pow | ( | __isl_take isl_qpolynomial * | qp, |
unsigned | power | ||
) |
Definition at line 1886 of file isl_polynomial.c.
References isl_poly_pow(), isl_qpolynomial_cow(), isl_qpolynomial_free(), and power().
Referenced by isl_pw_qpolynomial_pow().
__isl_give isl_qpolynomial * isl_qpolynomial_project_domain_on_params | ( | __isl_take isl_qpolynomial * | qp | ) |
Definition at line 2949 of file isl_polynomial.c.
References isl_die, isl_dim_in, isl_error_invalid, isl_qpolynomial_dim(), isl_qpolynomial_drop_dims(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), isl_qpolynomial_get_domain_space(), isl_qpolynomial_involves_dims(), isl_qpolynomial_reset_domain_space(), isl_space_params(), and n.
Referenced by add_guarded_poly(), and extract_coefficients().
__isl_give isl_qpolynomial * isl_qpolynomial_rat_cst_on_domain | ( | __isl_take isl_space * | domain, |
const isl_int | n, | ||
const isl_int | d | ||
) |
Definition at line 2620 of file isl_polynomial.c.
References domain, isl_int_set, isl_poly_as_cst(), isl_qpolynomial_zero_on_domain(), n, and isl_qpolynomial::poly.
Referenced by extract_coefficients(), monotonicity(), and read_factor().
__isl_give isl_qpolynomial * isl_qpolynomial_realign_domain | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_reordering * | r | ||
) |
Definition at line 4460 of file isl_polynomial.c.
References isl_qpolynomial::div, isl_local_reorder(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_qpolynomial_reset_domain_space(), isl_reordering_copy(), isl_reordering_extend(), isl_reordering_free(), isl_reordering_get_space(), isl_mat::n_row, isl_qpolynomial::poly, isl_opt_data::qp, and reorder().
Referenced by isl_qpolynomial_align_params(), and realign_domain().
__isl_give isl_qpolynomial * isl_qpolynomial_reset_domain_space | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_space * | space | ||
) |
Definition at line 415 of file isl_polynomial.c.
References isl_qpolynomial_cow(), isl_qpolynomial_free(), and isl_space_free().
Referenced by isl_qpolynomial_project_domain_on_params(), isl_qpolynomial_realign_domain(), isl_qpolynomial_reset_space_and_domain(), and reset_domain_space().
__isl_give isl_qpolynomial * isl_qpolynomial_reset_space_and_domain | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_space * | space, | ||
__isl_take isl_space * | domain | ||
) |
Definition at line 436 of file isl_polynomial.c.
References domain, isl_qpolynomial_reset_domain_space(), and isl_space_free().
__isl_give isl_qpolynomial * isl_qpolynomial_scale | ( | __isl_take isl_qpolynomial * | qp, |
isl_int | v | ||
) |
Definition at line 1784 of file isl_polynomial.c.
References isl_qpolynomial_mul_isl_int().
__isl_give isl_qpolynomial * isl_qpolynomial_scale_down_val | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_val * | v | ||
) |
Definition at line 1834 of file isl_polynomial.c.
References isl_die, isl_error_invalid, isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), isl_qpolynomial_scale_val(), isl_val_free(), isl_val_get_ctx(), isl_val_inv(), isl_val_is_rat(), and isl_val_is_zero().
__isl_give isl_qpolynomial * isl_qpolynomial_scale_val | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_val * | v | ||
) |
Definition at line 1792 of file isl_polynomial.c.
References isl_die, isl_error_invalid, isl_poly_scale_val(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), isl_qpolynomial_get_domain_space(), isl_qpolynomial_zero_on_domain(), isl_val_free(), isl_val_is_one(), isl_val_is_rat(), and isl_val_is_zero().
Referenced by isl_qpolynomial_scale_down_val(), print_qpolynomial_c(), and scale_val().
__isl_give isl_qpolynomial * isl_qpolynomial_set_dim_name | ( | __isl_take isl_qpolynomial * | qp, |
enum isl_dim_type | type, | ||
unsigned | pos, | ||
const char * | s | ||
) |
Definition at line 2877 of file isl_polynomial.c.
References domain_type(), isl_die, isl_dim_out, isl_error_invalid, isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), isl_space_set_dim_name(), pos(), and type.
Referenced by set_dim_name().
int isl_qpolynomial_sgn | ( | __isl_keep isl_qpolynomial * | qp | ) |
Definition at line 620 of file isl_polynomial.c.
References isl_poly_sgn().
__isl_give isl_qpolynomial * isl_qpolynomial_sub | ( | __isl_take isl_qpolynomial * | qp1, |
__isl_take isl_qpolynomial * | qp2 | ||
) |
Definition at line 1722 of file isl_polynomial.c.
References isl_qpolynomial_add(), and isl_qpolynomial_neg().
Referenced by merge_lists(), monotonicity(), and qpolynomial_fold_covers_on_domain().
__isl_give isl_qpolynomial * isl_qpolynomial_substitute | ( | __isl_take isl_qpolynomial * | qp, |
enum isl_dim_type | type, | ||
unsigned | first, | ||
unsigned | n, | ||
__isl_keep isl_qpolynomial ** | subs | ||
) |
Definition at line 3572 of file isl_polynomial.c.
References domain_type(), isl_alloc_array, isl_assert, isl_die, isl_dim_out, isl_error_invalid, isl_poly_subs(), isl_qpolynomial_cow(), isl_qpolynomial_free(), n, poly, pos(), and type.
Referenced by bernstein_coefficients_cell(), monotonicity(), plug_in_at_pos(), and substitute().
__isl_give isl_qpolynomial * isl_qpolynomial_substitute_equalities | ( | __isl_take isl_qpolynomial * | qp, |
__isl_take isl_basic_set * | eq | ||
) |
Definition at line 3041 of file isl_polynomial.c.
References isl_basic_set_add_dims(), isl_basic_set_free(), isl_dim_set, isl_qpolynomial_free(), and isl_qpolynomial_substitute_equalities_lifted().
Referenced by substitute_equalities().
|
static |
Definition at line 2973 of file isl_polynomial.c.
References isl_basic_set_free(), isl_basic_set_offset(), isl_dim_div, isl_int_abs, isl_int_clear, isl_int_init, isl_int_is_pos, isl_int_is_zero, isl_int_set_si, isl_mat_cow(), isl_poly_free(), isl_poly_from_affine(), isl_poly_subs(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_seq_elim(), isl_seq_last_non_zero(), isl_seq_neg(), normalize_div(), poly, sort_divs(), substitute_non_divs(), and total().
Referenced by isl_qpolynomial_gist(), and isl_qpolynomial_substitute_equalities().
__isl_give isl_qpolynomial * isl_qpolynomial_val_on_domain | ( | __isl_take isl_space * | domain, |
__isl_take isl_val * | val | ||
) |
Definition at line 2639 of file isl_polynomial.c.
References domain, isl_int_set, isl_poly_as_cst(), isl_qpolynomial_free(), isl_qpolynomial_zero_on_domain(), isl_val_free(), isl_qpolynomial::poly, and val.
__isl_give isl_qpolynomial * isl_qpolynomial_var_on_domain | ( | __isl_take isl_space * | domain, |
enum isl_dim_type | type, | ||
unsigned | pos | ||
) |
Definition at line 2270 of file isl_polynomial.c.
References domain, isl_ctx::error, isl_qpolynomial_var_pow_on_domain(), isl_space_check_is_set(), isl_space_check_range(), isl_space_free(), isl_space_offset(), pos(), and type.
Referenced by bernstein_coefficients_cell(), and monotonicity().
__isl_give isl_qpolynomial * isl_qpolynomial_var_pow_on_domain | ( | __isl_take isl_space * | domain, |
int | pos, | ||
int | power | ||
) |
Definition at line 2256 of file isl_polynomial.c.
References domain, isl_poly_var_pow(), isl_qpolynomial_alloc(), pos(), and power().
Referenced by isl_qpolynomial_sign(), isl_qpolynomial_var_on_domain(), and read_factor().
|
static |
Definition at line 3087 of file isl_polynomial.c.
References isl_qpolynomial_zero_on_domain(), and isl_space_domain().
__isl_give isl_qpolynomial * isl_qpolynomial_zero_on_domain | ( | __isl_take isl_space * | domain | ) |
Definition at line 1925 of file isl_polynomial.c.
References domain, isl_poly_zero(), and isl_qpolynomial_alloc().
Referenced by bernstein_coefficients_cell(), constant_on_domain(), isl_qpolynomial_cst_on_domain(), isl_qpolynomial_mul_isl_int(), isl_qpolynomial_rat_cst_on_domain(), isl_qpolynomial_scale_val(), isl_qpolynomial_terms_of_sign(), isl_qpolynomial_val_on_domain(), and isl_qpolynomial_zero_in_space().
__isl_give isl_term * isl_term_alloc | ( | __isl_take isl_space * | space, |
__isl_take isl_mat * | div | ||
) |
Definition at line 3893 of file isl_polynomial.c.
References isl_term::d, isl_term::dim, isl_qpolynomial::div, isl_term::div, isl_calloc, isl_dim_all, isl_int_init, isl_mat_free(), isl_space_dim(), isl_space_free(), isl_term::n, n, isl_mat::n_row, and isl_term::ref.
Referenced by isl_qpolynomial_foreach_term(), and isl_term_dup().
__isl_give isl_term * isl_term_copy | ( | __isl_keep isl_term * | term | ) |
Definition at line 3924 of file isl_polynomial.c.
References isl_term::ref.
Referenced by isl_poly_foreach_term().
__isl_give isl_term * isl_term_cow | ( | __isl_take isl_term * | term | ) |
Definition at line 3956 of file isl_polynomial.c.
References isl_term_dup(), and isl_term::ref.
Referenced by isl_poly_foreach_term().
isl_size isl_term_dim | ( | __isl_keep isl_term * | term, |
enum isl_dim_type | type | ||
) |
Definition at line 3984 of file isl_polynomial.c.
References isl_qpolynomial::dim, isl_dim_all, isl_dim_div, isl_dim_in, isl_dim_out, isl_dim_param, isl_size_error, isl_space_dim(), and type.
Referenced by collect_fixed_sign_terms(), isl_qpolynomial_from_term(), and isl_term_dup().
__isl_give isl_term * isl_term_dup | ( | __isl_keep isl_term * | term | ) |
Definition at line 3933 of file isl_polynomial.c.
References dup(), isl_dim_all, isl_int_set, isl_mat_copy(), isl_space_copy(), isl_term_alloc(), isl_term_dim(), and total().
Referenced by isl_term_cow().
__isl_null isl_term * isl_term_free | ( | __isl_take isl_term * | term | ) |
Definition at line 3967 of file isl_polynomial.c.
References isl_int_clear, isl_mat_free(), and isl_space_free().
Referenced by collect_fixed_sign_terms(), isl_poly_foreach_term(), isl_qpolynomial_foreach_term(), and isl_qpolynomial_from_term().
__isl_give isl_val * isl_term_get_coefficient_val | ( | __isl_keep isl_term * | term | ) |
Definition at line 4047 of file isl_polynomial.c.
References isl_term_get_ctx(), and isl_val_rat_from_isl_int().
isl_ctx * isl_term_get_ctx | ( | __isl_keep isl_term * | term | ) |
Definition at line 4033 of file isl_polynomial.c.
Referenced by isl_poly_foreach_term(), isl_term_get_coefficient_val(), and isl_term_offset().
__isl_give isl_aff * isl_term_get_div | ( | __isl_keep isl_term * | term, |
unsigned | pos | ||
) |
Definition at line 4075 of file isl_polynomial.c.
References aff, isl_aff_alloc(), isl_aff_normalize(), isl_dim_div, isl_local_space_alloc_div(), isl_mat_copy(), isl_seq_cpy(), isl_space_copy(), and pos().
|
static |
Definition at line 4061 of file isl_polynomial.c.
References isl_size_error, isl_term_offset(), offset, pos(), and type.
void isl_term_get_num | ( | __isl_keep isl_term * | term, |
isl_int * | n | ||
) |
Definition at line 4038 of file isl_polynomial.c.
References isl_int_set, and n.
Referenced by collect_fixed_sign_terms().
|
static |
Definition at line 4014 of file isl_polynomial.c.
References isl_die, isl_dim_all, isl_dim_div, isl_dim_param, isl_dim_set, isl_error_invalid, isl_size_error, isl_space_dim(), isl_space_offset(), isl_term_get_ctx(), isl_term_peek_space(), and type.
Referenced by isl_term_get_exp().
|
static |
Definition at line 4006 of file isl_polynomial.c.
Referenced by isl_term_offset().
__isl_give isl_union_pw_qpolynomial * isl_union_pw_qpolynomial_mul | ( | __isl_take isl_union_pw_qpolynomial * | upwqp1, |
__isl_take isl_union_pw_qpolynomial * | upwqp2 | ||
) |
Definition at line 4450 of file isl_polynomial.c.
References isl_pw_qpolynomial_mul().
__isl_give isl_union_pw_qpolynomial * isl_union_pw_qpolynomial_to_polynomial | ( | __isl_take isl_union_pw_qpolynomial * | upwqp, |
int | sign | ||
) |
Definition at line 5173 of file isl_polynomial.c.
References poly_entry(), and isl_to_poly_data::sign.
|
static |
Definition at line 5006 of file isl_polynomial.c.
References isl_vec::el, isl_dim_div, isl_int_cdiv_q, isl_int_fdiv_q, isl_int_is_zero, isl_int_lt, isl_int_set_si, isl_int_sgn, isl_int_sub_ui, isl_int_submul, isl_mat_cow(), isl_poly_free(), isl_poly_from_affine(), isl_poly_subs(), isl_qpolynomial_cow(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_seq_combine(), isl_vec_alloc(), isl_vec_clr(), isl_vec_free(), and isl_vec::size.
Referenced by to_polynomial_on_orthant().
|
static |
Definition at line 4786 of file isl_polynomial.c.
References fn, isl_basic_set_detect_equalities(), isl_basic_set_free(), isl_basic_set_multiplicative_call(), isl_basic_set_n_constraint(), isl_basic_set_n_equality(), and isl_basic_set_remove_redundancies().
Referenced by compressed_multiplicative_call(), and multiplicative_call_factor_pw_qpolynomial().
|
static |
Definition at line 4810 of file isl_polynomial.c.
References isl_multiplicative_call_data_pw_qpolynomial::fn, isl_basic_set_copy(), isl_bool_error, isl_bool_true, isl_pw_qpolynomial_mul(), multiplicative_call_base(), isl_multiplicative_call_data_pw_qpolynomial::pwqp, res, and user.
Referenced by compressed_multiplicative_call().
|
static |
Definition at line 2505 of file isl_polynomial.c.
References cmp(), isl_int_cmp, isl_int_divexact_ui, isl_int_is_zero, and isl_int_mul_ui.
Referenced by reduce_divs().
|
static |
Definition at line 2358 of file isl_polynomial.c.
References isl_int_divexact, isl_int_fdiv_q, isl_int_gcd, isl_int_is_one, isl_seq_gcd(), isl_seq_scale_down(), isl_ctx::normalize_gcd, and total().
Referenced by isl_qpolynomial_substitute_equalities_lifted(), reduce_divs(), and substitute_non_divs().
|
static |
Definition at line 4336 of file isl_polynomial.c.
References isl_opt_data::first, isl_qpolynomial_copy(), isl_qpolynomial_eval(), isl_stat_ok, isl_val_max(), isl_val_min(), isl_opt_data::max, isl_opt_data::opt, isl_opt_data::qp, user, and val.
Referenced by isl_qpolynomial_opt_on_domain().
|
static |
Definition at line 5165 of file isl_polynomial.c.
References isl_pw_qpolynomial_to_polynomial(), pwqp, isl_to_poly_data::sign, and user.
Referenced by isl_union_pw_qpolynomial_to_polynomial().
|
static |
Definition at line 625 of file isl_polynomial.c.
References isl_int_clear.
Referenced by isl_poly_free().
|
static |
Definition at line 631 of file isl_polynomial.c.
References isl_poly_free().
Referenced by isl_poly_free().
|
static |
Definition at line 2661 of file isl_polynomial.c.
References isl_poly_as_rec(), isl_poly_is_cst(), isl_stat_error, isl_stat_ok, isl_poly_rec::n, isl_poly_rec::p, poly, and poly_set_active().
Referenced by poly_set_active(), remove_redundant_divs(), and set_active().
|
static |
Definition at line 2214 of file isl_polynomial.c.
References isl_int_lcm, isl_poly_as_cst(), isl_poly_as_rec(), isl_poly_is_cst(), isl_stat_error, isl_stat_ok, isl_poly_rec::n, isl_poly_rec::p, poly, and poly_update_den().
Referenced by isl_qpolynomial_get_den(), and poly_update_den().
|
static |
Definition at line 41 of file isl_polynomial.c.
References isl_dim_in, isl_dim_out, isl_dim_param, and type.
Referenced by isl_basic_map_from_qpolynomial(), isl_poly_coeff(), isl_poly_var_pow(), isl_qpolynomial_add_dims(), isl_qpolynomial_coeff(), isl_qpolynomial_from_constraint(), isl_qpolynomial_insert_dims(), isl_qpolynomial_move_dims(), isl_qpolynomial_set_dim_name(), isl_qpolynomial_substitute(), isl_qpolynomial_var_on_domain(), isl_qpolynomial_var_pow_on_domain(), isl_term_get_div(), isl_term_get_exp(), sort_divs(), and update_coeff().
|
static |
Definition at line 4964 of file isl_polynomial.c.
References isl_pw_qpolynomial_cow(), isl_pw_qpolynomial_free(), isl_pw_qpolynomial_is_zero(), pwqp, and qp_drop_floors().
Referenced by isl_pw_qpolynomial_to_polynomial().
|
static |
Definition at line 4929 of file isl_polynomial.c.
References isl_int_add_ui, isl_int_sub, isl_poly_from_affine(), isl_qpolynomial_cow(), and substitute_div().
Referenced by pwqp_drop_floors(), and to_polynomial_on_orthant().
|
static |
Definition at line 2472 of file isl_polynomial.c.
References isl_int_addmul, isl_int_clear, isl_int_fdiv_q, isl_int_fdiv_r, isl_int_init, isl_int_is_nonneg, isl_int_is_zero, isl_int_lt, isl_mat_col_addmul(), and total().
Referenced by reduce_divs().
|
static |
Definition at line 2559 of file isl_polynomial.c.
References isl_ctx::error, invert_div(), isl_alloc_array, isl_dim_all, isl_dim_div, isl_mat_free(), isl_mat_set_element_si(), isl_mat_zero(), isl_poly_free(), isl_poly_from_affine(), isl_poly_subs(), isl_qpolynomial_domain_dim(), isl_qpolynomial_domain_offset(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), needs_invert(), normalize_div(), isl_ctx::one, reduce_div(), reduce_divs(), isl_mat::row, sort_divs(), substitute_non_divs(), and total().
Referenced by isl_qpolynomial_from_aff(), and reduce_divs().
|
static |
Definition at line 2760 of file isl_polynomial.c.
References isl_alloc_array, isl_calloc_array, isl_dim_div, isl_int_is_zero, isl_mat_drop_cols(), isl_mat_drop_rows(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), poly_set_active(), and reorder().
Referenced by isl_qpolynomial_from_aff().
|
static |
Definition at line 1406 of file isl_polynomial.c.
References isl_assert, isl_poly_as_rec(), isl_poly_copy(), isl_poly_free(), isl_poly_is_cst(), isl_poly_mul(), isl_poly_sum(), isl_poly_var_pow(), isl_poly_rec::n, isl_poly_rec::p, poly, reorder(), and res.
Referenced by isl_qpolynomial_move_dims(), isl_qpolynomial_realign_domain(), remove_redundant_divs(), reorder(), sort_divs(), and substitute_div().
|
static |
Definition at line 3388 of file isl_polynomial.c.
References isl_alloc_array, and n.
Referenced by isl_qpolynomial_move_dims().
|
static |
Definition at line 790 of file isl_polynomial.c.
References isl_ctx::error, isl_poly_as_rec(), isl_poly_copy(), isl_poly_free(), isl_poly_rec::p, and poly.
Referenced by isl_poly_drop(), and isl_poly_sum().
|
static |
Definition at line 779 of file isl_polynomial.c.
References isl_poly_free(), isl_poly_zero(), and poly.
Referenced by isl_poly_sum().
|
static |
Definition at line 2684 of file isl_polynomial.c.
References isl_dim_all, isl_int_is_zero, isl_qpolynomial_peek_domain_space(), isl_space_dim(), isl_stat_error, and poly_set_active().
Referenced by fix_inactive(), and isl_qpolynomial_involves_dims().
|
static |
Definition at line 4574 of file isl_polynomial.c.
References isl_dim_div, isl_int_addmul, isl_int_is_zero, isl_int_set_si, isl_poly_rat_cst(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_set_free(), isl_set_get_space(), isl_set_intersect(), isl_stat_error, set, set_div_slice(), split_periods(), and substitute_div().
Referenced by check_for_div_constraints(), isl_basic_map_drop_redundant_divs_ineq(), and split_div().
|
static |
Definition at line 4532 of file isl_polynomial.c.
References isl_basic_set_alloc_inequality(), isl_basic_set_alloc_space(), isl_basic_set_free(), isl_dim_all, isl_int_add, isl_int_addmul, isl_int_sub_ui, isl_int_submul, isl_seq_cpy(), isl_seq_neg(), isl_set_from_basic_set(), isl_space_copy(), isl_space_dim(), isl_space_free(), and total().
Referenced by set_div().
|
static |
Definition at line 1498 of file isl_polynomial.c.
References at(), isl_div_sort_info::div, div_sort_cmp(), isl_alloc_array, isl_dim_div, isl_mat_col_add(), isl_mat_drop_cols(), isl_mat_drop_rows(), isl_mat_swap_rows(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_seq_eq(), isl_mat::n_row, pos(), reorder(), and isl_div_sort_info::row.
Referenced by isl_qpolynomial_move_dims(), isl_qpolynomial_substitute_equalities_lifted(), and reduce_divs().
|
static |
Definition at line 4612 of file isl_polynomial.c.
References isl_int_add_ui, isl_int_le, isl_qpolynomial_copy(), isl_qpolynomial_free(), isl_set_copy(), isl_set_free(), isl_stat_error, isl_stat_ok, set, and set_div().
Referenced by split_periods().
|
static |
Definition at line 4638 of file isl_polynomial.c.
References isl_dim_div, isl_int_add, isl_int_clear, isl_int_cmp_si, isl_int_fdiv_q, isl_int_init, isl_int_sub, isl_lp_empty, isl_lp_error, isl_lp_unbounded, isl_pw_qpolynomial_add_disjoint(), isl_pw_qpolynomial_alloc(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_seq_first_non_zero(), isl_set_free(), isl_set_solve_lp(), isl_stat_error, isl_stat_ok, isl_split_periods_data::max_periods, pwqp, isl_split_periods_data::res, set, split_div(), and user.
Referenced by isl_pw_qpolynomial_split_periods(), and set_div().
|
static |
Definition at line 2381 of file isl_polynomial.c.
References isl_ctx::error, isl_alloc_array, isl_dim_div, isl_mat_drop_cols(), isl_mat_drop_rows(), isl_poly_free(), isl_poly_subs(), isl_qpolynomial_cow(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_qpolynomial_get_ctx(), and reorder().
Referenced by qp_drop_floors(), set_div(), and substitute_non_divs().
|
static |
Definition at line 2430 of file isl_polynomial.c.
References isl_dim_div, isl_int_is_one, isl_int_is_zero, isl_int_set_si, isl_poly_from_affine(), isl_qpolynomial_domain_var_offset(), isl_qpolynomial_free(), isl_seq_combine(), normalize_div(), and substitute_div().
Referenced by isl_qpolynomial_substitute_equalities_lifted(), and reduce_divs().
|
static |
Definition at line 5090 of file isl_polynomial.c.
References isl_pw_qpolynomial_add_disjoint(), isl_pw_qpolynomial_alloc(), isl_qpolynomial_add(), isl_qpolynomial_copy(), isl_qpolynomial_free(), isl_qpolynomial_terms_of_sign(), isl_stat_ok, make_divs_pos(), isl_to_poly_data::qp, qp_drop_floors(), isl_to_poly_data::res, isl_to_poly_data::sign, t, and user.
Referenced by isl_pw_qpolynomial_to_polynomial().
|
static |
Definition at line 2083 of file isl_polynomial.c.
References aff, f, gcd(), isl_int_clear, isl_int_divexact, isl_int_gcd, isl_int_init, isl_int_is_zero, isl_int_mul, isl_seq_scale(), and pos().
Referenced by isl_poly_update_affine().
|
static |
Definition at line 1625 of file isl_polynomial.c.
References isl_div_sort_info::div, expand(), fn, isl_alloc_array, isl_assert, isl_mat_copy(), isl_mat_free(), isl_merge_divs(), isl_qpolynomial_cow(), isl_qpolynomial_free(), isl_mat::n_col, and isl_mat::n_row.
Referenced by isl_qpolynomial_add(), and isl_qpolynomial_mul().