Polly 20.0.0git
Classes | Macros | Functions
isl_polynomial.c File Reference
#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
 

Functions

static unsigned pos (__isl_keep isl_space *space, enum isl_dim_type type)
 
isl_bool isl_poly_is_cst (__isl_keep isl_poly *poly)
 
__isl_keep isl_poly_cstisl_poly_as_cst (__isl_keep isl_poly *poly)
 
__isl_keep isl_poly_recisl_poly_as_rec (__isl_keep isl_poly *poly)
 
static int isl_poly_plain_cmp (__isl_keep isl_poly *poly1, __isl_keep isl_poly *poly2)
 
isl_bool isl_poly_is_equal (__isl_keep isl_poly *poly1, __isl_keep isl_poly *poly2)
 
isl_bool isl_poly_is_zero (__isl_keep isl_poly *poly)
 
int isl_poly_sgn (__isl_keep isl_poly *poly)
 
isl_bool isl_poly_is_nan (__isl_keep isl_poly *poly)
 
isl_bool isl_poly_is_infty (__isl_keep isl_poly *poly)
 
isl_bool isl_poly_is_neginfty (__isl_keep isl_poly *poly)
 
isl_bool isl_poly_is_one (__isl_keep isl_poly *poly)
 
isl_bool isl_poly_is_negone (__isl_keep isl_poly *poly)
 
__isl_give isl_poly_cstisl_poly_cst_alloc (isl_ctx *ctx)
 
__isl_give isl_polyisl_poly_zero (isl_ctx *ctx)
 
__isl_give isl_polyisl_poly_one (isl_ctx *ctx)
 
__isl_give isl_polyisl_poly_infty (isl_ctx *ctx)
 
__isl_give isl_polyisl_poly_neginfty (isl_ctx *ctx)
 
__isl_give isl_polyisl_poly_nan (isl_ctx *ctx)
 
__isl_give isl_polyisl_poly_rat_cst (isl_ctx *ctx, isl_int n, isl_int d)
 
__isl_give isl_poly_recisl_poly_alloc_rec (isl_ctx *ctx, int var, int size)
 
__isl_give isl_qpolynomialisl_qpolynomial_reset_domain_space (__isl_take isl_qpolynomial *qp, __isl_take isl_space *space)
 
__isl_give isl_qpolynomialisl_qpolynomial_reset_space_and_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_space *space, __isl_take isl_space *domain)
 
isl_ctxisl_qpolynomial_get_ctx (__isl_keep isl_qpolynomial *qp)
 
static __isl_keep isl_spaceisl_qpolynomial_peek_domain_space (__isl_keep isl_qpolynomial *qp)
 
__isl_give isl_spaceisl_qpolynomial_get_domain_space (__isl_keep isl_qpolynomial *qp)
 
static static static __isl_give isl_local_spaceisl_qpolynomial_get_domain_local_space (__isl_keep isl_qpolynomial *qp)
 
__isl_give isl_spaceisl_qpolynomial_get_space (__isl_keep isl_qpolynomial *qp)
 
isl_size isl_qpolynomial_domain_dim (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type)
 
static enum isl_dim_type domain_type (enum isl_dim_type type)
 
isl_size isl_qpolynomial_dim (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type)
 
static isl_size isl_qpolynomial_domain_var_offset (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type)
 
unsigned isl_qpolynomial_domain_offset (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type)
 
isl_bool isl_qpolynomial_is_zero (__isl_keep isl_qpolynomial *qp)
 
isl_bool isl_qpolynomial_is_one (__isl_keep isl_qpolynomial *qp)
 
isl_bool isl_qpolynomial_is_nan (__isl_keep isl_qpolynomial *qp)
 
isl_bool isl_qpolynomial_is_infty (__isl_keep isl_qpolynomial *qp)
 
isl_bool isl_qpolynomial_is_neginfty (__isl_keep isl_qpolynomial *qp)
 
int isl_qpolynomial_sgn (__isl_keep isl_qpolynomial *qp)
 
static void poly_free_cst (__isl_take isl_poly_cst *cst)
 
static void poly_free_rec (__isl_take isl_poly_rec *rec)
 
__isl_give isl_polyisl_poly_copy (__isl_keep isl_poly *poly)
 
__isl_give isl_polyisl_poly_dup_cst (__isl_keep isl_poly *poly)
 
__isl_give isl_polyisl_poly_dup_rec (__isl_keep isl_poly *poly)
 
__isl_give isl_polyisl_poly_dup (__isl_keep isl_poly *poly)
 
__isl_give isl_polyisl_poly_cow (__isl_take isl_poly *poly)
 
__isl_null isl_polyisl_poly_free (__isl_take isl_poly *poly)
 
static void isl_poly_cst_reduce (__isl_keep isl_poly_cst *cst)
 
__isl_give isl_polyisl_poly_sum_cst (__isl_take isl_poly *poly1, __isl_take isl_poly *poly2)
 
static __isl_give isl_polyreplace_by_zero (__isl_take isl_poly *poly)
 
static __isl_give isl_polyreplace_by_constant_term (__isl_take isl_poly *poly)
 
__isl_give isl_polyisl_poly_sum (__isl_take isl_poly *poly1, __isl_take isl_poly *poly2)
 
__isl_give isl_polyisl_poly_cst_add_isl_int (__isl_take isl_poly *poly, isl_int v)
 
__isl_give isl_polyisl_poly_add_isl_int (__isl_take isl_poly *poly, isl_int v)
 
__isl_give isl_polyisl_poly_cst_mul_isl_int (__isl_take isl_poly *poly, isl_int v)
 
__isl_give isl_polyisl_poly_mul_isl_int (__isl_take isl_poly *poly, isl_int v)
 
static __isl_give isl_polyisl_poly_cst_scale_val (__isl_take isl_poly *poly, __isl_keep isl_val *v)
 
static __isl_give isl_polyisl_poly_scale_val (__isl_take isl_poly *poly, __isl_keep isl_val *v)
 
__isl_give isl_polyisl_poly_mul_cst (__isl_take isl_poly *poly1, __isl_take isl_poly *poly2)
 
__isl_give isl_polyisl_poly_mul_rec (__isl_take isl_poly *poly1, __isl_take isl_poly *poly2)
 
__isl_give isl_polyisl_poly_mul (__isl_take isl_poly *poly1, __isl_take isl_poly *poly2)
 
__isl_give isl_polyisl_poly_pow (__isl_take isl_poly *poly, unsigned power)
 
__isl_give isl_qpolynomialisl_qpolynomial_alloc (__isl_take isl_space *space, unsigned n_div, __isl_take isl_poly *poly)
 
__isl_give isl_qpolynomialisl_qpolynomial_copy (__isl_keep isl_qpolynomial *qp)
 
__isl_give isl_qpolynomialisl_qpolynomial_dup (__isl_keep isl_qpolynomial *qp)
 
__isl_give isl_qpolynomialisl_qpolynomial_cow (__isl_take isl_qpolynomial *qp)
 
__isl_null isl_qpolynomialisl_qpolynomial_free (__isl_take isl_qpolynomial *qp)
 
__isl_give isl_polyisl_poly_var_pow (isl_ctx *ctx, int pos, int power)
 
static __isl_give isl_polyreorder (__isl_take isl_poly *poly, int *r)
 
static isl_bool compatible_divs (__isl_keep isl_mat *div1, __isl_keep isl_mat *div2)
 
static int cmp_row (__isl_keep isl_mat *div, int i, int j)
 
static int div_sort_cmp (const void *p1, const void *p2)
 
static __isl_give isl_qpolynomialsort_divs (__isl_take isl_qpolynomial *qp)
 
static __isl_give isl_polyexpand (__isl_take isl_poly *poly, int *exp, int first)
 
static __isl_give isl_qpolynomialwith_merged_divs (__isl_give isl_qpolynomial *(*fn)(__isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2), __isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
 
__isl_give isl_qpolynomialisl_qpolynomial_add (__isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
 
__isl_give isl_qpolynomialisl_qpolynomial_add_on_domain (__isl_keep isl_set *dom, __isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
 
__isl_give isl_qpolynomialisl_qpolynomial_sub (__isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
 
__isl_give isl_qpolynomialisl_qpolynomial_add_isl_int (__isl_take isl_qpolynomial *qp, isl_int v)
 
__isl_give isl_qpolynomialisl_qpolynomial_neg (__isl_take isl_qpolynomial *qp)
 
__isl_give isl_qpolynomialisl_qpolynomial_mul_isl_int (__isl_take isl_qpolynomial *qp, isl_int v)
 
__isl_give isl_qpolynomialisl_qpolynomial_scale (__isl_take isl_qpolynomial *qp, isl_int v)
 
__isl_give isl_qpolynomialisl_qpolynomial_scale_val (__isl_take isl_qpolynomial *qp, __isl_take isl_val *v)
 
__isl_give isl_qpolynomialisl_qpolynomial_scale_down_val (__isl_take isl_qpolynomial *qp, __isl_take isl_val *v)
 
__isl_give isl_qpolynomialisl_qpolynomial_mul (__isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
 
__isl_give isl_qpolynomialisl_qpolynomial_pow (__isl_take isl_qpolynomial *qp, unsigned power)
 
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_pow (__isl_take isl_pw_qpolynomial *pwqp, unsigned power)
 
__isl_give isl_qpolynomialisl_qpolynomial_zero_on_domain (__isl_take isl_space *domain)
 
__isl_give isl_qpolynomialisl_qpolynomial_one_on_domain (__isl_take isl_space *domain)
 
__isl_give isl_qpolynomialisl_qpolynomial_infty_on_domain (__isl_take isl_space *domain)
 
__isl_give isl_qpolynomialisl_qpolynomial_neginfty_on_domain (__isl_take isl_space *domain)
 
__isl_give isl_qpolynomialisl_qpolynomial_nan_on_domain (__isl_take isl_space *domain)
 
__isl_give isl_qpolynomialisl_qpolynomial_cst_on_domain (__isl_take isl_space *domain, isl_int v)
 
isl_bool isl_qpolynomial_is_cst (__isl_keep isl_qpolynomial *qp, isl_int *n, isl_int *d)
 
static __isl_give isl_valisl_poly_get_constant_val (__isl_keep isl_poly *poly)
 
__isl_give isl_valisl_qpolynomial_get_constant_val (__isl_keep isl_qpolynomial *qp)
 
isl_bool isl_poly_is_affine (__isl_keep isl_poly *poly)
 
isl_bool isl_qpolynomial_is_affine (__isl_keep isl_qpolynomial *qp)
 
static void update_coeff (__isl_keep isl_vec *aff, __isl_keep isl_poly_cst *cst, int pos)
 
int isl_poly_update_affine (__isl_keep isl_poly *poly, __isl_keep isl_vec *aff)
 
__isl_give isl_vecisl_qpolynomial_extract_affine (__isl_keep isl_qpolynomial *qp)
 
int isl_qpolynomial_plain_cmp (__isl_keep isl_qpolynomial *qp1, __isl_keep isl_qpolynomial *qp2)
 
isl_bool isl_qpolynomial_plain_is_equal (__isl_keep isl_qpolynomial *qp1, __isl_keep isl_qpolynomial *qp2)
 
static isl_stat poly_update_den (__isl_keep isl_poly *poly, isl_int *d)
 
__isl_give isl_valisl_qpolynomial_get_den (__isl_keep isl_qpolynomial *qp)
 
__isl_give isl_qpolynomialisl_qpolynomial_var_pow_on_domain (__isl_take isl_space *domain, int pos, int power)
 
__isl_give isl_qpolynomialisl_qpolynomial_var_on_domain (__isl_take isl_space *domain, enum isl_dim_type type, unsigned pos)
 
__isl_give isl_polyisl_poly_subs (__isl_take isl_poly *poly, unsigned first, unsigned n, __isl_keep isl_poly **subs)
 
__isl_give isl_polyisl_poly_from_affine (isl_ctx *ctx, isl_int *f, isl_int denom, unsigned len)
 
static void normalize_div (__isl_keep isl_qpolynomial *qp, int div)
 
static __isl_give isl_qpolynomialsubstitute_div (__isl_take isl_qpolynomial *qp, int div, __isl_take isl_poly *s)
 
static __isl_give isl_qpolynomialsubstitute_non_divs (__isl_take isl_qpolynomial *qp)
 
static void reduce_div (__isl_keep isl_qpolynomial *qp, int div, __isl_keep isl_mat **mat)
 
static int needs_invert (__isl_keep isl_mat *div, int row)
 
static void invert_div (__isl_keep isl_qpolynomial *qp, int div, __isl_keep isl_mat **mat)
 
static __isl_give isl_qpolynomialreduce_divs (__isl_take isl_qpolynomial *qp)
 
__isl_give isl_qpolynomialisl_qpolynomial_rat_cst_on_domain (__isl_take isl_space *domain, const isl_int n, const isl_int d)
 
__isl_give isl_qpolynomialisl_qpolynomial_val_on_domain (__isl_take isl_space *domain, __isl_take isl_val *val)
 
static isl_stat poly_set_active (__isl_keep isl_poly *poly, int *active, int d)
 
static isl_stat set_active (__isl_keep isl_qpolynomial *qp, int *active)
 
static isl_bool isl_qpolynomial_involves_dims (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type, unsigned first, unsigned n)
 
static __isl_give isl_qpolynomialremove_redundant_divs (__isl_take isl_qpolynomial *qp)
 
__isl_give isl_polyisl_poly_drop (__isl_take isl_poly *poly, unsigned first, unsigned n)
 
__isl_give isl_qpolynomialisl_qpolynomial_set_dim_name (__isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned pos, const char *s)
 
__isl_give isl_qpolynomialisl_qpolynomial_drop_dims (__isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned first, unsigned n)
 
__isl_give isl_qpolynomialisl_qpolynomial_project_domain_on_params (__isl_take isl_qpolynomial *qp)
 
static __isl_give isl_qpolynomialisl_qpolynomial_substitute_equalities_lifted (__isl_take isl_qpolynomial *qp, __isl_take isl_basic_set *eq)
 
__isl_give isl_qpolynomialisl_qpolynomial_substitute_equalities (__isl_take isl_qpolynomial *qp, __isl_take isl_basic_set *eq)
 
__isl_give isl_qpolynomialisl_qpolynomial_gist (__isl_take isl_qpolynomial *qp, __isl_take isl_set *context)
 
__isl_give isl_qpolynomialisl_qpolynomial_gist_params (__isl_take isl_qpolynomial *qp, __isl_take isl_set *context)
 
static __isl_give isl_qpolynomialisl_qpolynomial_zero_in_space (__isl_take isl_space *space)
 
int isl_pw_qpolynomial_is_one (__isl_keep isl_pw_qpolynomial *pwqp)
 
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_add (__isl_take isl_pw_qpolynomial *pwqp1, __isl_take isl_pw_qpolynomial *pwqp2)
 
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_mul (__isl_take isl_pw_qpolynomial *pwqp1, __isl_take isl_pw_qpolynomial *pwqp2)
 
__isl_give isl_valisl_poly_eval (__isl_take isl_poly *poly, __isl_take isl_vec *vec)
 
static __isl_give isl_valeval_void (__isl_take isl_qpolynomial *qp, __isl_take isl_point *pnt)
 
__isl_give isl_valisl_qpolynomial_eval (__isl_take isl_qpolynomial *qp, __isl_take isl_point *pnt)
 
int isl_poly_cmp (__isl_keep isl_poly_cst *cst1, __isl_keep isl_poly_cst *cst2)
 
__isl_give isl_qpolynomialisl_qpolynomial_insert_dims (__isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned first, unsigned n)
 
__isl_give isl_qpolynomialisl_qpolynomial_add_dims (__isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned n)
 
static int * reordering_move (isl_ctx *ctx, unsigned len, unsigned dst, unsigned src, unsigned n)
 
__isl_give isl_qpolynomialisl_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)
 
__isl_give isl_qpolynomialisl_qpolynomial_from_affine (__isl_take isl_space *space, isl_int *f, isl_int denom)
 
__isl_give isl_qpolynomialisl_qpolynomial_from_aff (__isl_take isl_aff *aff)
 
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_from_pw_aff (__isl_take isl_pw_aff *pwaff)
 
__isl_give isl_qpolynomialisl_qpolynomial_from_constraint (__isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos)
 
__isl_give isl_qpolynomialisl_qpolynomial_substitute (__isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned first, unsigned n, __isl_keep isl_qpolynomial **subs)
 
isl_stat isl_qpolynomial_as_polynomial_on_domain (__isl_keep isl_qpolynomial *qp, __isl_keep isl_basic_set *bset, isl_stat(*fn)(__isl_take isl_basic_set *bset, __isl_take isl_qpolynomial *poly, void *user), void *user)
 
int isl_poly_degree (__isl_keep isl_poly *poly, int first, int last)
 
int isl_qpolynomial_degree (__isl_keep isl_qpolynomial *poly)
 
__isl_give isl_polyisl_poly_coeff (__isl_keep isl_poly *poly, unsigned pos, int deg)
 
__isl_give isl_qpolynomialisl_qpolynomial_coeff (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type, unsigned t_pos, int deg)
 
__isl_give isl_polyisl_poly_homogenize (__isl_take isl_poly *poly, int deg, int target, int first, int last)
 
__isl_give isl_qpolynomialisl_qpolynomial_homogenize (__isl_take isl_qpolynomial *poly)
 
__isl_give isl_termisl_term_alloc (__isl_take isl_space *space, __isl_take isl_mat *div)
 
__isl_give isl_termisl_term_copy (__isl_keep isl_term *term)
 
__isl_give isl_termisl_term_dup (__isl_keep isl_term *term)
 
__isl_give isl_termisl_term_cow (__isl_take isl_term *term)
 
__isl_null isl_termisl_term_free (__isl_take isl_term *term)
 
isl_size isl_term_dim (__isl_keep isl_term *term, enum isl_dim_type type)
 
static __isl_keep isl_spaceisl_term_peek_space (__isl_keep isl_term *term)
 
static isl_size isl_term_offset (__isl_keep isl_term *term, enum isl_dim_type type)
 
isl_ctxisl_term_get_ctx (__isl_keep isl_term *term)
 
void isl_term_get_num (__isl_keep isl_term *term, isl_int *n)
 
__isl_give isl_valisl_term_get_coefficient_val (__isl_keep isl_term *term)
 
static isl_size isl_term_get_exp (__isl_keep isl_term *term, enum isl_dim_type type, unsigned pos)
 
__isl_give isl_affisl_term_get_div (__isl_keep isl_term *term, unsigned pos)
 
__isl_give isl_termisl_poly_foreach_term (__isl_keep isl_poly *poly, isl_stat(*fn)(__isl_take isl_term *term, void *user), __isl_take isl_term *term, void *user)
 
isl_stat isl_qpolynomial_foreach_term (__isl_keep isl_qpolynomial *qp, isl_stat(*fn)(__isl_take isl_term *term, void *user), void *user)
 
__isl_give isl_qpolynomialisl_qpolynomial_from_term (__isl_take isl_term *term)
 
__isl_give isl_qpolynomialisl_qpolynomial_lift (__isl_take isl_qpolynomial *qp, __isl_take isl_space *space)
 
static __isl_give isl_setfix_inactive (__isl_take isl_set *set, __isl_keep isl_qpolynomial *qp)
 
static isl_stat opt_fn (__isl_take isl_point *pnt, void *user)
 
__isl_give isl_valisl_qpolynomial_opt_on_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_set *set, int max)
 
__isl_give isl_qpolynomialisl_qpolynomial_morph_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_morph *morph)
 
__isl_give isl_union_pw_qpolynomialisl_union_pw_qpolynomial_mul (__isl_take isl_union_pw_qpolynomial *upwqp1, __isl_take isl_union_pw_qpolynomial *upwqp2)
 
__isl_give isl_qpolynomialisl_qpolynomial_realign_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_reordering *r)
 
__isl_give isl_qpolynomialisl_qpolynomial_align_params (__isl_take isl_qpolynomial *qp, __isl_take isl_space *model)
 
static __isl_give isl_setset_div_slice (__isl_take isl_space *space, __isl_keep isl_qpolynomial *qp, int div, isl_int v)
 
static isl_stat split_periods (__isl_take isl_set *set, __isl_take isl_qpolynomial *qp, void *user)
 
static isl_stat set_div (__isl_take isl_set *set, __isl_take isl_qpolynomial *qp, int div, isl_int v, struct isl_split_periods_data *data)
 
static isl_stat split_div (__isl_take isl_set *set, __isl_take isl_qpolynomial *qp, int div, isl_int min, isl_int max, struct isl_split_periods_data *data)
 
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_split_periods (__isl_take isl_pw_qpolynomial *pwqp, int max_periods)
 
static __isl_give isl_pw_qpolynomialconstant_on_domain (__isl_take isl_basic_set *bset, int cst)
 
static __isl_give isl_pw_qpolynomialmultiplicative_call_base (__isl_take isl_basic_set *bset, __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset))
 
static isl_bool multiplicative_call_factor_pw_qpolynomial (__isl_keep isl_basic_set *bset, void *user)
 
static __isl_give isl_pw_qpolynomialcompressed_multiplicative_call (__isl_take isl_basic_set *bset, __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset))
 
__isl_give isl_pw_qpolynomialisl_basic_set_multiplicative_call (__isl_take isl_basic_set *bset, __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset))
 
static __isl_give isl_qpolynomialqp_drop_floors (__isl_take isl_qpolynomial *qp, int down)
 
static __isl_give isl_pw_qpolynomialpwqp_drop_floors (__isl_take isl_pw_qpolynomial *pwqp)
 
static __isl_give isl_qpolynomialmake_divs_pos (__isl_take isl_qpolynomial *qp, int *signs)
 
static isl_stat to_polynomial_on_orthant (__isl_take isl_set *orthant, int *signs, void *user)
 
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_to_polynomial (__isl_take isl_pw_qpolynomial *pwqp, int sign)
 
static __isl_give isl_pw_qpolynomialpoly_entry (__isl_take isl_pw_qpolynomial *pwqp, void *user)
 
__isl_give isl_union_pw_qpolynomialisl_union_pw_qpolynomial_to_polynomial (__isl_take isl_union_pw_qpolynomial *upwqp, int sign)
 
__isl_give isl_basic_mapisl_basic_map_from_qpolynomial (__isl_take isl_qpolynomial *qp)
 

Macro Definition Documentation

◆ BASE [1/2]

#define BASE   qpolynomial

Definition at line 3126 of file isl_polynomial.c.

◆ BASE [2/2]

#define BASE   pw_qpolynomial

Definition at line 3126 of file isl_polynomial.c.

◆ DEFAULT_IS_ZERO

#define DEFAULT_IS_ZERO   1

Definition at line 3108 of file isl_polynomial.c.

◆ EL_BASE [1/2]

#define EL_BASE   qpolynomial

Definition at line 37 of file isl_polynomial.c.

◆ EL_BASE [2/2]

#define EL_BASE   pw_qpolynomial

Definition at line 37 of file isl_polynomial.c.

◆ EL_IS_ZERO

#define EL_IS_ZERO   is_zero

Definition at line 3100 of file isl_polynomial.c.

◆ FIELD

#define FIELD   qp

Definition at line 3106 of file isl_polynomial.c.

◆ IS_ZERO

#define IS_ZERO   is_zero

Definition at line 3104 of file isl_polynomial.c.

◆ isl_qpolynomial_involves_nan

#define isl_qpolynomial_involves_nan   isl_qpolynomial_is_nan

Definition at line 3093 of file isl_polynomial.c.

◆ PEEK_SPACE

#define PEEK_SPACE   peek_domain_space

Definition at line 468 of file isl_polynomial.c.

◆ PW

#define PW   isl_pw_qpolynomial

Definition at line 3096 of file isl_polynomial.c.

◆ TYPE [1/3]

#define TYPE   isl_qpolynomial

Definition at line 4057 of file isl_polynomial.c.

◆ TYPE [2/3]

#define TYPE   isl_qpolynomial

Definition at line 4057 of file isl_polynomial.c.

◆ TYPE [3/3]

#define TYPE   isl_term

Definition at line 4057 of file isl_polynomial.c.

◆ ZERO

#define ZERO   zero

Definition at line 3102 of file isl_polynomial.c.

Function Documentation

◆ cmp_row()

static int cmp_row ( __isl_keep isl_mat div,
int  i,
int  j 
)
static

◆ compatible_divs()

static isl_bool compatible_divs ( __isl_keep isl_mat div1,
__isl_keep isl_mat div2 
)
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().

◆ compressed_multiplicative_call()

static __isl_give isl_pw_qpolynomial * compressed_multiplicative_call ( __isl_take isl_basic_set bset,
__isl_give isl_pw_qpolynomial *(*)(__isl_take isl_basic_set *bset)  fn 
)
static

◆ constant_on_domain()

static __isl_give isl_pw_qpolynomial * constant_on_domain ( __isl_take isl_basic_set bset,
int  cst 
)
static

◆ div_sort_cmp()

static int div_sort_cmp ( const void *  p1,
const void *  p2 
)
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().

◆ domain_type()

static enum isl_dim_type domain_type ( enum isl_dim_type  type)
static

◆ eval_void()

static __isl_give isl_val * eval_void ( __isl_take isl_qpolynomial qp,
__isl_take isl_point pnt 
)
static

◆ expand()

static __isl_give isl_poly * expand ( __isl_take isl_poly poly,
int *  exp,
int  first 
)
static

◆ fix_inactive()

static __isl_give isl_set * fix_inactive ( __isl_take isl_set set,
__isl_keep isl_qpolynomial qp 
)
static

◆ invert_div()

static void invert_div ( __isl_keep isl_qpolynomial qp,
int  div,
__isl_keep isl_mat **  mat 
)
static

◆ isl_basic_map_from_qpolynomial()

__isl_give isl_basic_map * isl_basic_map_from_qpolynomial ( __isl_take isl_qpolynomial qp)

◆ isl_basic_set_multiplicative_call()

__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 
)

◆ isl_poly_add_isl_int()

__isl_give isl_poly * isl_poly_add_isl_int ( __isl_take isl_poly poly,
isl_int  v 
)

◆ isl_poly_alloc_rec()

__isl_give isl_poly_rec * isl_poly_alloc_rec ( isl_ctx ctx,
int  var,
int  size 
)

◆ isl_poly_as_cst()

__isl_keep isl_poly_cst * isl_poly_as_cst ( __isl_keep isl_poly poly)

◆ isl_poly_as_rec()

__isl_keep isl_poly_rec * isl_poly_as_rec ( __isl_keep isl_poly poly)

◆ isl_poly_cmp()

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_poly_coeff()

__isl_give isl_poly * isl_poly_coeff ( __isl_keep isl_poly poly,
unsigned  pos,
int  deg 
)

◆ isl_poly_copy()

__isl_give isl_poly * isl_poly_copy ( __isl_keep isl_poly poly)

◆ isl_poly_cow()

__isl_give isl_poly * isl_poly_cow ( __isl_take isl_poly poly)

◆ isl_poly_cst_add_isl_int()

__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_poly_cst_alloc()

__isl_give isl_poly_cst * isl_poly_cst_alloc ( isl_ctx ctx)

◆ isl_poly_cst_mul_isl_int()

__isl_give isl_poly * isl_poly_cst_mul_isl_int ( __isl_take isl_poly poly,
isl_int  v 
)

◆ isl_poly_cst_reduce()

static void isl_poly_cst_reduce ( __isl_keep isl_poly_cst cst)
static

◆ isl_poly_cst_scale_val()

static __isl_give isl_poly * isl_poly_cst_scale_val ( __isl_take isl_poly poly,
__isl_keep isl_val v 
)
static

◆ isl_poly_degree()

int isl_poly_degree ( __isl_keep isl_poly poly,
int  first,
int  last 
)

◆ isl_poly_drop()

__isl_give isl_poly * isl_poly_drop ( __isl_take isl_poly poly,
unsigned  first,
unsigned  n 
)

◆ isl_poly_dup()

__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_poly_dup_cst()

__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_poly_dup_rec()

__isl_give isl_poly * isl_poly_dup_rec ( __isl_keep isl_poly poly)

◆ isl_poly_eval()

__isl_give isl_val * isl_poly_eval ( __isl_take isl_poly poly,
__isl_take isl_vec vec 
)

◆ isl_poly_foreach_term()

__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 
)

◆ isl_poly_free()

__isl_null isl_poly * isl_poly_free ( __isl_take isl_poly poly)

◆ isl_poly_from_affine()

__isl_give isl_poly * isl_poly_from_affine ( isl_ctx ctx,
isl_int f,
isl_int  denom,
unsigned  len 
)

◆ isl_poly_get_constant_val()

static __isl_give isl_val * isl_poly_get_constant_val ( __isl_keep isl_poly poly)
static

◆ isl_poly_homogenize()

__isl_give isl_poly * isl_poly_homogenize ( __isl_take isl_poly poly,
int  deg,
int  target,
int  first,
int  last 
)

◆ isl_poly_infty()

__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_poly_is_affine()

isl_bool isl_poly_is_affine ( __isl_keep isl_poly poly)

◆ isl_poly_is_cst()

isl_bool isl_poly_is_cst ( __isl_keep isl_poly poly)

◆ isl_poly_is_equal()

isl_bool isl_poly_is_equal ( __isl_keep isl_poly poly1,
__isl_keep isl_poly poly2 
)

◆ isl_poly_is_infty()

isl_bool isl_poly_is_infty ( __isl_keep isl_poly poly)

◆ isl_poly_is_nan()

isl_bool isl_poly_is_nan ( __isl_keep isl_poly poly)

◆ isl_poly_is_neginfty()

isl_bool isl_poly_is_neginfty ( __isl_keep isl_poly poly)

◆ isl_poly_is_negone()

isl_bool isl_poly_is_negone ( __isl_keep isl_poly poly)

◆ isl_poly_is_one()

isl_bool isl_poly_is_one ( __isl_keep isl_poly poly)

◆ isl_poly_is_zero()

isl_bool isl_poly_is_zero ( __isl_keep isl_poly poly)

◆ isl_poly_mul()

__isl_give isl_poly * isl_poly_mul ( __isl_take isl_poly poly1,
__isl_take isl_poly poly2 
)

◆ isl_poly_mul_cst()

__isl_give isl_poly * isl_poly_mul_cst ( __isl_take isl_poly poly1,
__isl_take isl_poly poly2 
)

◆ isl_poly_mul_isl_int()

__isl_give isl_poly * isl_poly_mul_isl_int ( __isl_take isl_poly poly,
isl_int  v 
)

◆ isl_poly_mul_rec()

__isl_give isl_poly * isl_poly_mul_rec ( __isl_take isl_poly poly1,
__isl_take isl_poly poly2 
)

◆ isl_poly_nan()

__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_poly_neginfty()

__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_poly_one()

__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().

◆ isl_poly_plain_cmp()

static int isl_poly_plain_cmp ( __isl_keep isl_poly poly1,
__isl_keep isl_poly poly2 
)
static

◆ isl_poly_pow()

__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_poly_rat_cst()

__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().

◆ isl_poly_scale_val()

static __isl_give isl_poly * isl_poly_scale_val ( __isl_take isl_poly poly,
__isl_keep isl_val v 
)
static

◆ isl_poly_sgn()

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_poly_subs()

__isl_give isl_poly * isl_poly_subs ( __isl_take isl_poly poly,
unsigned  first,
unsigned  n,
__isl_keep isl_poly **  subs 
)

◆ isl_poly_sum()

__isl_give isl_poly * isl_poly_sum ( __isl_take isl_poly poly1,
__isl_take isl_poly poly2 
)

◆ isl_poly_sum_cst()

__isl_give isl_poly * isl_poly_sum_cst ( __isl_take isl_poly poly1,
__isl_take isl_poly poly2 
)

◆ isl_poly_update_affine()

int isl_poly_update_affine ( __isl_keep isl_poly poly,
__isl_keep isl_vec aff 
)

◆ isl_poly_var_pow()

__isl_give isl_poly * isl_poly_var_pow ( isl_ctx ctx,
int  pos,
int  power 
)

◆ isl_poly_zero()

__isl_give isl_poly * isl_poly_zero ( isl_ctx ctx)

◆ isl_pw_qpolynomial_add()

__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_pw_qpolynomial_from_pw_aff()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_from_pw_aff ( __isl_take isl_pw_aff pwaff)

◆ isl_pw_qpolynomial_is_one()

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_pw_qpolynomial_mul()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_mul ( __isl_take isl_pw_qpolynomial pwqp1,
__isl_take isl_pw_qpolynomial pwqp2 
)

◆ isl_pw_qpolynomial_pow()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_pow ( __isl_take isl_pw_qpolynomial pwqp,
unsigned  power 
)

◆ isl_pw_qpolynomial_split_periods()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_split_periods ( __isl_take isl_pw_qpolynomial pwqp,
int  max_periods 
)

◆ isl_pw_qpolynomial_to_polynomial()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_to_polynomial ( __isl_take isl_pw_qpolynomial pwqp,
int  sign 
)

◆ isl_qpolynomial_add()

__isl_give isl_qpolynomial * isl_qpolynomial_add ( __isl_take isl_qpolynomial qp1,
__isl_take isl_qpolynomial qp2 
)

◆ isl_qpolynomial_add_dims()

__isl_give isl_qpolynomial * isl_qpolynomial_add_dims ( __isl_take isl_qpolynomial qp,
enum isl_dim_type  type,
unsigned  n 
)

◆ isl_qpolynomial_add_isl_int()

__isl_give isl_qpolynomial * isl_qpolynomial_add_isl_int ( __isl_take isl_qpolynomial qp,
isl_int  v 
)

◆ isl_qpolynomial_add_on_domain()

__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_qpolynomial_align_params()

__isl_give isl_qpolynomial * isl_qpolynomial_align_params ( __isl_take isl_qpolynomial qp,
__isl_take isl_space model 
)

◆ isl_qpolynomial_alloc()

__isl_give isl_qpolynomial * isl_qpolynomial_alloc ( __isl_take isl_space space,
unsigned  n_div,
__isl_take isl_poly poly 
)

◆ isl_qpolynomial_as_polynomial_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 
)

◆ isl_qpolynomial_coeff()

__isl_give isl_qpolynomial * isl_qpolynomial_coeff ( __isl_keep isl_qpolynomial qp,
enum isl_dim_type  type,
unsigned  t_pos,
int  deg 
)

◆ isl_qpolynomial_copy()

__isl_give isl_qpolynomial * isl_qpolynomial_copy ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_cow()

__isl_give isl_qpolynomial * isl_qpolynomial_cow ( __isl_take isl_qpolynomial qp)

◆ isl_qpolynomial_cst_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_cst_on_domain ( __isl_take isl_space domain,
isl_int  v 
)

◆ isl_qpolynomial_degree()

int isl_qpolynomial_degree ( __isl_keep isl_qpolynomial poly)

◆ isl_qpolynomial_dim()

isl_size isl_qpolynomial_dim ( __isl_keep isl_qpolynomial qp,
enum isl_dim_type  type 
)

◆ isl_qpolynomial_domain_dim()

isl_size isl_qpolynomial_domain_dim ( __isl_keep isl_qpolynomial qp,
enum isl_dim_type  type 
)

◆ isl_qpolynomial_domain_offset()

unsigned isl_qpolynomial_domain_offset ( __isl_keep isl_qpolynomial qp,
enum isl_dim_type  type 
)

◆ isl_qpolynomial_domain_var_offset()

static isl_size isl_qpolynomial_domain_var_offset ( __isl_keep isl_qpolynomial qp,
enum isl_dim_type  type 
)
static

◆ isl_qpolynomial_drop_dims()

__isl_give isl_qpolynomial * isl_qpolynomial_drop_dims ( __isl_take isl_qpolynomial qp,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)

◆ isl_qpolynomial_dup()

__isl_give isl_qpolynomial * isl_qpolynomial_dup ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_eval()

__isl_give isl_val * isl_qpolynomial_eval ( __isl_take isl_qpolynomial qp,
__isl_take isl_point pnt 
)

◆ isl_qpolynomial_extract_affine()

__isl_give isl_vec * isl_qpolynomial_extract_affine ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_foreach_term()

isl_stat isl_qpolynomial_foreach_term ( __isl_keep isl_qpolynomial qp,
isl_stat(*)(__isl_take isl_term *term, void *user fn,
void *  user 
)

◆ isl_qpolynomial_free()

__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_qpolynomial_from_aff()

__isl_give isl_qpolynomial * isl_qpolynomial_from_aff ( __isl_take isl_aff aff)

◆ isl_qpolynomial_from_affine()

__isl_give isl_qpolynomial * isl_qpolynomial_from_affine ( __isl_take isl_space space,
isl_int f,
isl_int  denom 
)

◆ isl_qpolynomial_from_constraint()

__isl_give isl_qpolynomial * isl_qpolynomial_from_constraint ( __isl_take isl_constraint c,
enum isl_dim_type  type,
unsigned  pos 
)

◆ isl_qpolynomial_from_term()

__isl_give isl_qpolynomial * isl_qpolynomial_from_term ( __isl_take isl_term term)

◆ isl_qpolynomial_get_constant_val()

__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_qpolynomial_get_ctx()

isl_ctx * isl_qpolynomial_get_ctx ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_get_den()

__isl_give isl_val * isl_qpolynomial_get_den ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_get_domain_local_space()

static static static __isl_give isl_local_space * isl_qpolynomial_get_domain_local_space ( __isl_keep isl_qpolynomial qp)
static

◆ isl_qpolynomial_get_domain_space()

__isl_give isl_space * isl_qpolynomial_get_domain_space ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_get_space()

__isl_give isl_space * isl_qpolynomial_get_space ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_gist()

__isl_give isl_qpolynomial * isl_qpolynomial_gist ( __isl_take isl_qpolynomial qp,
__isl_take isl_set context 
)

◆ isl_qpolynomial_gist_params()

__isl_give isl_qpolynomial * isl_qpolynomial_gist_params ( __isl_take isl_qpolynomial qp,
__isl_take isl_set context 
)

◆ isl_qpolynomial_homogenize()

__isl_give isl_qpolynomial * isl_qpolynomial_homogenize ( __isl_take isl_qpolynomial poly)

◆ isl_qpolynomial_infty_on_domain()

__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_qpolynomial_insert_dims()

__isl_give isl_qpolynomial * isl_qpolynomial_insert_dims ( __isl_take isl_qpolynomial qp,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)

◆ isl_qpolynomial_involves_dims()

static isl_bool isl_qpolynomial_involves_dims ( __isl_keep isl_qpolynomial qp,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)
static

◆ isl_qpolynomial_is_affine()

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_qpolynomial_is_cst()

isl_bool isl_qpolynomial_is_cst ( __isl_keep isl_qpolynomial qp,
isl_int n,
isl_int d 
)

◆ isl_qpolynomial_is_infty()

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_qpolynomial_is_nan()

isl_bool isl_qpolynomial_is_nan ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_is_neginfty()

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_qpolynomial_is_one()

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_qpolynomial_is_zero()

isl_bool isl_qpolynomial_is_zero ( __isl_keep isl_qpolynomial qp)

◆ isl_qpolynomial_lift()

__isl_give isl_qpolynomial * isl_qpolynomial_lift ( __isl_take isl_qpolynomial qp,
__isl_take isl_space space 
)

◆ isl_qpolynomial_morph_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_morph_domain ( __isl_take isl_qpolynomial qp,
__isl_take isl_morph morph 
)

◆ isl_qpolynomial_move_dims()

__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 
)

◆ isl_qpolynomial_mul()

__isl_give isl_qpolynomial * isl_qpolynomial_mul ( __isl_take isl_qpolynomial qp1,
__isl_take isl_qpolynomial qp2 
)

◆ isl_qpolynomial_mul_isl_int()

__isl_give isl_qpolynomial * isl_qpolynomial_mul_isl_int ( __isl_take isl_qpolynomial qp,
isl_int  v 
)

◆ isl_qpolynomial_nan_on_domain()

__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_qpolynomial_neg()

__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_qpolynomial_neginfty_on_domain()

__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_qpolynomial_one_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_one_on_domain ( __isl_take isl_space domain)

◆ isl_qpolynomial_opt_on_domain()

__isl_give isl_val * isl_qpolynomial_opt_on_domain ( __isl_take isl_qpolynomial qp,
__isl_take isl_set set,
int  max 
)

◆ isl_qpolynomial_peek_domain_space()

static __isl_keep isl_space * isl_qpolynomial_peek_domain_space ( __isl_keep isl_qpolynomial qp)
static

◆ isl_qpolynomial_plain_cmp()

int isl_qpolynomial_plain_cmp ( __isl_keep isl_qpolynomial qp1,
__isl_keep isl_qpolynomial qp2 
)

◆ isl_qpolynomial_plain_is_equal()

isl_bool isl_qpolynomial_plain_is_equal ( __isl_keep isl_qpolynomial qp1,
__isl_keep isl_qpolynomial qp2 
)

◆ isl_qpolynomial_pow()

__isl_give isl_qpolynomial * isl_qpolynomial_pow ( __isl_take isl_qpolynomial qp,
unsigned  power 
)

◆ isl_qpolynomial_project_domain_on_params()

__isl_give isl_qpolynomial * isl_qpolynomial_project_domain_on_params ( __isl_take isl_qpolynomial qp)

◆ isl_qpolynomial_rat_cst_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_rat_cst_on_domain ( __isl_take isl_space domain,
const isl_int  n,
const isl_int  d 
)

◆ isl_qpolynomial_realign_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_realign_domain ( __isl_take isl_qpolynomial qp,
__isl_take isl_reordering r 
)

◆ isl_qpolynomial_reset_domain_space()

__isl_give isl_qpolynomial * isl_qpolynomial_reset_domain_space ( __isl_take isl_qpolynomial qp,
__isl_take isl_space space 
)

◆ isl_qpolynomial_reset_space_and_domain()

__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_qpolynomial_scale()

__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_qpolynomial_scale_down_val()

__isl_give isl_qpolynomial * isl_qpolynomial_scale_down_val ( __isl_take isl_qpolynomial qp,
__isl_take isl_val v 
)

◆ isl_qpolynomial_scale_val()

__isl_give isl_qpolynomial * isl_qpolynomial_scale_val ( __isl_take isl_qpolynomial qp,
__isl_take isl_val v 
)

◆ isl_qpolynomial_set_dim_name()

__isl_give isl_qpolynomial * isl_qpolynomial_set_dim_name ( __isl_take isl_qpolynomial qp,
enum isl_dim_type  type,
unsigned  pos,
const char *  s 
)

◆ isl_qpolynomial_sgn()

int isl_qpolynomial_sgn ( __isl_keep isl_qpolynomial qp)

Definition at line 620 of file isl_polynomial.c.

References isl_poly_sgn().

◆ isl_qpolynomial_sub()

__isl_give isl_qpolynomial * isl_qpolynomial_sub ( __isl_take isl_qpolynomial qp1,
__isl_take isl_qpolynomial qp2 
)

◆ isl_qpolynomial_substitute()

__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 
)

◆ isl_qpolynomial_substitute_equalities()

__isl_give isl_qpolynomial * isl_qpolynomial_substitute_equalities ( __isl_take isl_qpolynomial qp,
__isl_take isl_basic_set eq 
)

◆ isl_qpolynomial_substitute_equalities_lifted()

static __isl_give isl_qpolynomial * isl_qpolynomial_substitute_equalities_lifted ( __isl_take isl_qpolynomial qp,
__isl_take isl_basic_set eq 
)
static

◆ isl_qpolynomial_val_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_val_on_domain ( __isl_take isl_space domain,
__isl_take isl_val val 
)

◆ isl_qpolynomial_var_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_var_on_domain ( __isl_take isl_space domain,
enum isl_dim_type  type,
unsigned  pos 
)

◆ isl_qpolynomial_var_pow_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_var_pow_on_domain ( __isl_take isl_space domain,
int  pos,
int  power 
)

◆ isl_qpolynomial_zero_in_space()

static __isl_give isl_qpolynomial * isl_qpolynomial_zero_in_space ( __isl_take isl_space space)
static

Definition at line 3087 of file isl_polynomial.c.

References isl_qpolynomial_zero_on_domain(), and isl_space_domain().

◆ isl_qpolynomial_zero_on_domain()

__isl_give isl_qpolynomial * isl_qpolynomial_zero_on_domain ( __isl_take isl_space domain)

◆ isl_term_alloc()

__isl_give isl_term * isl_term_alloc ( __isl_take isl_space space,
__isl_take isl_mat div 
)

◆ isl_term_copy()

__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_term_cow()

__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_term_dim()

isl_size isl_term_dim ( __isl_keep isl_term term,
enum isl_dim_type  type 
)

◆ isl_term_dup()

__isl_give isl_term * isl_term_dup ( __isl_keep isl_term term)

◆ isl_term_free()

__isl_null isl_term * isl_term_free ( __isl_take isl_term term)

◆ isl_term_get_coefficient_val()

__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_term_get_ctx()

isl_ctx * isl_term_get_ctx ( __isl_keep isl_term term)

◆ isl_term_get_div()

__isl_give isl_aff * isl_term_get_div ( __isl_keep isl_term term,
unsigned  pos 
)

◆ isl_term_get_exp()

static isl_size isl_term_get_exp ( __isl_keep isl_term term,
enum isl_dim_type  type,
unsigned  pos 
)
static

Definition at line 4061 of file isl_polynomial.c.

References isl_size_error, isl_term_offset(), offset, pos(), and type.

◆ isl_term_get_num()

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().

◆ isl_term_offset()

static isl_size isl_term_offset ( __isl_keep isl_term term,
enum isl_dim_type  type 
)
static

◆ isl_term_peek_space()

static __isl_keep isl_space * isl_term_peek_space ( __isl_keep isl_term term)
static

Definition at line 4006 of file isl_polynomial.c.

Referenced by isl_term_offset().

◆ isl_union_pw_qpolynomial_mul()

Definition at line 4450 of file isl_polynomial.c.

References isl_pw_qpolynomial_mul().

◆ isl_union_pw_qpolynomial_to_polynomial()

__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.

◆ make_divs_pos()

static __isl_give isl_qpolynomial * make_divs_pos ( __isl_take isl_qpolynomial qp,
int *  signs 
)
static

◆ multiplicative_call_base()

static __isl_give isl_pw_qpolynomial * multiplicative_call_base ( __isl_take isl_basic_set bset,
__isl_give isl_pw_qpolynomial *(*)(__isl_take isl_basic_set *bset)  fn 
)
static

◆ multiplicative_call_factor_pw_qpolynomial()

static isl_bool multiplicative_call_factor_pw_qpolynomial ( __isl_keep isl_basic_set bset,
void *  user 
)
static

◆ needs_invert()

static int needs_invert ( __isl_keep isl_mat div,
int  row 
)
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().

◆ normalize_div()

static void normalize_div ( __isl_keep isl_qpolynomial qp,
int  div 
)
static

◆ opt_fn()

static isl_stat opt_fn ( __isl_take isl_point pnt,
void *  user 
)
static

◆ poly_entry()

static __isl_give isl_pw_qpolynomial * poly_entry ( __isl_take isl_pw_qpolynomial pwqp,
void *  user 
)
static

◆ poly_free_cst()

static void poly_free_cst ( __isl_take isl_poly_cst cst)
static

Definition at line 625 of file isl_polynomial.c.

References isl_int_clear.

Referenced by isl_poly_free().

◆ poly_free_rec()

static void poly_free_rec ( __isl_take isl_poly_rec rec)
static

Definition at line 631 of file isl_polynomial.c.

References isl_poly_free().

Referenced by isl_poly_free().

◆ poly_set_active()

static isl_stat poly_set_active ( __isl_keep isl_poly poly,
int *  active,
int  d 
)
static

◆ poly_update_den()

static isl_stat poly_update_den ( __isl_keep isl_poly poly,
isl_int d 
)
static

◆ pos()

static unsigned pos ( __isl_keep isl_space space,
enum isl_dim_type  type 
)
static

◆ pwqp_drop_floors()

static __isl_give isl_pw_qpolynomial * pwqp_drop_floors ( __isl_take isl_pw_qpolynomial pwqp)
static

◆ qp_drop_floors()

static __isl_give isl_qpolynomial * qp_drop_floors ( __isl_take isl_qpolynomial qp,
int  down 
)
static

◆ reduce_div()

static void reduce_div ( __isl_keep isl_qpolynomial qp,
int  div,
__isl_keep isl_mat **  mat 
)
static

◆ reduce_divs()

static __isl_give isl_qpolynomial * reduce_divs ( __isl_take isl_qpolynomial qp)
static

◆ remove_redundant_divs()

static __isl_give isl_qpolynomial * remove_redundant_divs ( __isl_take isl_qpolynomial qp)
static

◆ reorder()

static __isl_give isl_poly * reorder ( __isl_take isl_poly poly,
int *  r 
)
static

◆ reordering_move()

static int * reordering_move ( isl_ctx ctx,
unsigned  len,
unsigned  dst,
unsigned  src,
unsigned  n 
)
static

Definition at line 3388 of file isl_polynomial.c.

References isl_alloc_array, and n.

Referenced by isl_qpolynomial_move_dims().

◆ replace_by_constant_term()

static __isl_give isl_poly * replace_by_constant_term ( __isl_take isl_poly poly)
static

◆ replace_by_zero()

static __isl_give isl_poly * replace_by_zero ( __isl_take isl_poly poly)
static

Definition at line 779 of file isl_polynomial.c.

References isl_poly_free(), isl_poly_zero(), and poly.

Referenced by isl_poly_sum().

◆ set_active()

static isl_stat set_active ( __isl_keep isl_qpolynomial qp,
int *  active 
)
static

◆ set_div()

static isl_stat set_div ( __isl_take isl_set set,
__isl_take isl_qpolynomial qp,
int  div,
isl_int  v,
struct isl_split_periods_data data 
)
static

◆ set_div_slice()

static __isl_give isl_set * set_div_slice ( __isl_take isl_space space,
__isl_keep isl_qpolynomial qp,
int  div,
isl_int  v 
)
static

◆ sort_divs()

static __isl_give isl_qpolynomial * sort_divs ( __isl_take isl_qpolynomial qp)
static

◆ split_div()

static isl_stat split_div ( __isl_take isl_set set,
__isl_take isl_qpolynomial qp,
int  div,
isl_int  min,
isl_int  max,
struct isl_split_periods_data data 
)
static

◆ split_periods()

static isl_stat split_periods ( __isl_take isl_set set,
__isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ substitute_div()

static __isl_give isl_qpolynomial * substitute_div ( __isl_take isl_qpolynomial qp,
int  div,
__isl_take isl_poly s 
)
static

◆ substitute_non_divs()

static __isl_give isl_qpolynomial * substitute_non_divs ( __isl_take isl_qpolynomial qp)
static

◆ to_polynomial_on_orthant()

static isl_stat to_polynomial_on_orthant ( __isl_take isl_set orthant,
int *  signs,
void *  user 
)
static

◆ update_coeff()

static void update_coeff ( __isl_keep isl_vec aff,
__isl_keep isl_poly_cst cst,
int  pos 
)
static

◆ with_merged_divs()