Polly 22.0.0git
isl_polynomial_private.h File Reference
#include <stdio.h>
#include <isl_int.h>
#include <isl/map.h>
#include <isl/mat.h>
#include <isl_morph.h>
#include <isl/polynomial.h>
#include <isl_reordering.h>
#include "isl_list_private.h"
#include <isl_list_templ.h>
#include <isl_pw_templ.h>

Go to the source code of this file.

Classes

struct  isl_poly
struct  isl_poly_cst
struct  isl_poly_rec
struct  isl_qpolynomial
struct  isl_term
struct  isl_pw_qpolynomial_piece
struct  isl_pw_qpolynomial
struct  isl_qpolynomial_fold
struct  isl_pw_qpolynomial_fold_piece
struct  isl_pw_qpolynomial_fold

Macros

#define EL   isl_qpolynomial
#define PW   isl_pw_qpolynomial
#define EL   isl_pw_qpolynomial
#define PW   isl_pw_qpolynomial_fold
#define EL   isl_pw_qpolynomial_fold

Typedefs

typedef struct isl_poly isl_poly
typedef struct isl_poly_cst isl_poly_cst
typedef struct isl_poly_rec isl_poly_rec

Functions

void isl_term_get_num (__isl_keep isl_term *term, isl_int *n)
__isl_give isl_polyisl_poly_zero (struct isl_ctx *ctx)
__isl_give isl_polyisl_poly_copy (__isl_keep isl_poly *poly)
__isl_give isl_polyisl_poly_cow (__isl_take isl_poly *poly)
__isl_give isl_polyisl_poly_dup (__isl_keep isl_poly *poly)
__isl_null isl_polyisl_poly_free (__isl_take isl_poly *poly)
__isl_give struct isl_polyisl_poly_mul (__isl_take struct isl_poly *poly1, __isl_take struct isl_poly *poly2)
isl_bool isl_poly_is_cst (__isl_keep isl_poly *poly)
isl_bool isl_poly_is_zero (__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_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)
__isl_give isl_polyisl_poly_sum (__isl_take isl_poly *poly1, __isl_take isl_poly *poly2)
__isl_give struct isl_polyisl_poly_mul_isl_int (__isl_take isl_poly *poly, isl_int v)
__isl_give isl_qpolynomialisl_qpolynomial_alloc (__isl_take isl_space *space, unsigned n_div, __isl_take isl_poly *poly)
__isl_give isl_qpolynomialisl_qpolynomial_cow (__isl_take isl_qpolynomial *qp)
__isl_give isl_qpolynomialisl_qpolynomial_dup (__isl_keep isl_qpolynomial *qp)
__isl_give isl_qpolynomialisl_qpolynomial_cst_on_domain (__isl_take isl_space *domain, isl_int v)
__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_var_pow_on_domain (__isl_take isl_space *domain, int pos, int power)
isl_bool isl_qpolynomial_is_one (__isl_keep isl_qpolynomial *qp)
isl_bool isl_qpolynomial_is_affine (__isl_keep isl_qpolynomial *qp)
isl_bool isl_qpolynomial_is_cst (__isl_keep isl_qpolynomial *qp, isl_int *n, isl_int *d)
unsigned isl_qpolynomial_domain_offset (__isl_keep isl_qpolynomial *qp, enum isl_dim_type type)
__isl_give isl_qpolynomialisl_qpolynomial_add_on_domain (__isl_keep isl_set *dom, __isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
int isl_qpolynomial_plain_cmp (__isl_keep isl_qpolynomial *qp1, __isl_keep isl_qpolynomial *qp2)
int isl_qpolynomial_degree (__isl_keep isl_qpolynomial *poly)
__isl_give isl_qpolynomialisl_qpolynomial_coeff (__isl_keep isl_qpolynomial *poly, enum isl_dim_type type, unsigned pos, int deg)
__isl_give isl_vecisl_qpolynomial_extract_affine (__isl_keep isl_qpolynomial *qp)
__isl_give isl_qpolynomialisl_qpolynomial_from_affine (__isl_take isl_space *space, isl_int *f, isl_int denom)
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_cow (__isl_take isl_pw_qpolynomial *pwqp)
__isl_keep isl_qpolynomialisl_pw_qpolynomial_peek_base_at (__isl_keep isl_pw_qpolynomial *pwqp, int pos)
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_add_piece (__isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *set, __isl_take isl_qpolynomial *qp)
int isl_pw_qpolynomial_is_one (__isl_keep isl_pw_qpolynomial *pwqp)
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_project_out (__isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_valisl_qpolynomial_opt_on_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_set *set, int max)
enum isl_fold isl_fold_type_negate (enum isl_fold type)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_cow (__isl_take isl_qpolynomial_fold *fold)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_dup (__isl_keep isl_qpolynomial_fold *fold)
__isl_keep isl_qpolynomial_list * isl_qpolynomial_fold_peek_list (__isl_keep isl_qpolynomial_fold *fold)
__isl_give isl_pw_qpolynomial_foldisl_pw_qpolynomial_fold_cow (__isl_take isl_pw_qpolynomial_fold *pwf)
__isl_keep isl_qpolynomial_foldisl_pw_qpolynomial_fold_peek_base_at (__isl_keep isl_pw_qpolynomial_fold *pwf, int pos)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_add_on_domain (__isl_keep isl_set *set, __isl_take isl_qpolynomial_fold *fold1, __isl_take isl_qpolynomial_fold *fold2)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_fold_on_domain (__isl_keep isl_set *set, __isl_take isl_qpolynomial_fold *fold1, __isl_take isl_qpolynomial_fold *fold2)
int isl_qpolynomial_fold_plain_cmp (__isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2)
__isl_give isl_valisl_qpolynomial_fold_opt_on_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *set, int max)
isl_bool isl_pw_qpolynomial_fold_covers (__isl_keep isl_pw_qpolynomial_fold *pwf1, __isl_keep isl_pw_qpolynomial_fold *pwf2)
__isl_give isl_qpolynomialisl_qpolynomial_morph_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_morph *morph)
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_morph_domain (__isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_morph *morph)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_morph_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_morph *morph)
__isl_give isl_pw_qpolynomial_foldisl_pw_qpolynomial_fold_morph_domain (__isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_morph *morph)
__isl_give isl_qpolynomialisl_qpolynomial_lift (__isl_take isl_qpolynomial *qp, __isl_take isl_space *space)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_lift (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_space *space)
__isl_give isl_qpolynomialisl_qpolynomial_substitute_equalities (__isl_take isl_qpolynomial *qp, __isl_take isl_basic_set *eq)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_substitute_equalities (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_basic_set *eq)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_gist (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context)
__isl_give isl_qpolynomialisl_qpolynomial_realign_domain (__isl_take isl_qpolynomial *qp, __isl_take isl_reordering *r)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_realign_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_reordering *r)
__isl_give isl_pw_qpolynomialisl_pw_qpolynomial_reset_space (__isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_space *space)
__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_give isl_qpolynomial_foldisl_qpolynomial_fold_reset_domain_space (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_space *space)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_reset_space_and_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_space *space, __isl_take isl_space *domain)
__isl_give isl_pw_qpolynomial_foldisl_pw_qpolynomial_fold_reset_domain_space (__isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_space *space)
__isl_give isl_valisl_qpolynomial_get_den (__isl_keep isl_qpolynomial *qp)
__isl_give isl_qpolynomialisl_qpolynomial_add_isl_int (__isl_take isl_qpolynomial *qp, isl_int v)
__isl_give isl_qpolynomialisl_qpolynomial_mul_isl_int (__isl_take isl_qpolynomial *qp, isl_int v)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_scale (__isl_take isl_qpolynomial_fold *fold, isl_int v)
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_mul_isl_int (__isl_take isl_qpolynomial_fold *fold, isl_int v)

Macro Definition Documentation

◆ EL [1/3]

#define EL   isl_qpolynomial

Definition at line 45 of file isl_polynomial_private.h.

◆ EL [2/3]

#define EL   isl_pw_qpolynomial

Definition at line 45 of file isl_polynomial_private.h.

◆ EL [3/3]

#define EL   isl_pw_qpolynomial_fold

Definition at line 45 of file isl_polynomial_private.h.

◆ PW [1/2]

#define PW   isl_pw_qpolynomial

Definition at line 78 of file isl_polynomial_private.h.

◆ PW [2/2]

#define PW   isl_pw_qpolynomial_fold

Definition at line 78 of file isl_polynomial_private.h.

Typedef Documentation

◆ isl_poly

typedef struct isl_poly isl_poly

Definition at line 16 of file isl_polynomial_private.h.

◆ isl_poly_cst

typedef struct isl_poly_cst isl_poly_cst

Definition at line 23 of file isl_polynomial_private.h.

◆ isl_poly_rec

typedef struct isl_poly_rec isl_poly_rec

Definition at line 32 of file isl_polynomial_private.h.

Function Documentation

◆ isl_fold_type_negate()

enum isl_fold isl_fold_type_negate ( enum isl_fold type)

◆ isl_poly_as_cst()

◆ isl_poly_as_rec()

◆ isl_poly_copy()

◆ isl_poly_cow()

◆ 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_give, __isl_keep, isl_poly_dup_cst(), isl_poly_dup_rec(), isl_poly_is_cst(), and poly.

Referenced by isl_poly_cow().

◆ isl_poly_free()

◆ isl_poly_is_cst()

◆ isl_poly_is_negone()

isl_bool isl_poly_is_negone ( __isl_keep isl_poly * poly)

◆ isl_poly_is_one()

◆ isl_poly_is_zero()

◆ isl_poly_mul()

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

◆ isl_poly_mul_isl_int()

◆ isl_poly_sum()

◆ isl_poly_zero()

◆ isl_pw_qpolynomial_add_piece()

◆ isl_pw_qpolynomial_cow()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_cow ( __isl_take isl_pw_qpolynomial * pwqp)

References __isl_give, __isl_take, and pwqp.

Referenced by isl_pw_qpolynomial_pow(), and pwqp_drop_floors().

◆ isl_pw_qpolynomial_fold_covers()

◆ isl_pw_qpolynomial_fold_cow()

__isl_give isl_pw_qpolynomial_fold * isl_pw_qpolynomial_fold_cow ( __isl_take isl_pw_qpolynomial_fold * pwf)

References __isl_give, and __isl_take.

◆ isl_pw_qpolynomial_fold_morph_domain()

◆ isl_pw_qpolynomial_fold_peek_base_at()

__isl_keep isl_qpolynomial_fold * isl_pw_qpolynomial_fold_peek_base_at ( __isl_keep isl_pw_qpolynomial_fold * pwf,
int pos )

◆ isl_pw_qpolynomial_fold_reset_domain_space()

__isl_give isl_pw_qpolynomial_fold * isl_pw_qpolynomial_fold_reset_domain_space ( __isl_take isl_pw_qpolynomial_fold * pwf,
__isl_take isl_space * space )

◆ isl_pw_qpolynomial_is_one()

int isl_pw_qpolynomial_is_one ( __isl_keep isl_pw_qpolynomial * pwqp)

◆ isl_pw_qpolynomial_morph_domain()

◆ isl_pw_qpolynomial_peek_base_at()

__isl_keep isl_qpolynomial * isl_pw_qpolynomial_peek_base_at ( __isl_keep isl_pw_qpolynomial * pwqp,
int pos )

References __isl_keep, pos(), and pwqp.

◆ isl_pw_qpolynomial_project_out()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_project_out ( __isl_take isl_pw_qpolynomial * pwqp,
enum isl_dim_type type,
unsigned first,
unsigned n )

◆ isl_pw_qpolynomial_reset_space()

__isl_give isl_pw_qpolynomial * isl_pw_qpolynomial_reset_space ( __isl_take isl_pw_qpolynomial * pwqp,
__isl_take isl_space * space )

References __isl_give, __isl_take, domain, and pwqp.

◆ isl_qpolynomial_add_isl_int()

◆ isl_qpolynomial_add_on_domain()

◆ isl_qpolynomial_alloc()

◆ isl_qpolynomial_coeff()

◆ isl_qpolynomial_cow()

◆ isl_qpolynomial_cst_on_domain()

◆ isl_qpolynomial_degree()

◆ isl_qpolynomial_domain_offset()

unsigned isl_qpolynomial_domain_offset ( __isl_keep isl_qpolynomial * qp,
enum isl_dim_type type )

◆ isl_qpolynomial_dup()

◆ isl_qpolynomial_extract_affine()

◆ isl_qpolynomial_fold_add_on_domain()

◆ isl_qpolynomial_fold_cow()

◆ isl_qpolynomial_fold_dup()

◆ isl_qpolynomial_fold_fold_on_domain()

◆ isl_qpolynomial_fold_gist()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_gist ( __isl_take isl_qpolynomial_fold * fold,
__isl_take isl_set * context )

Definition at line 901 of file isl_fold.c.

Referenced by isl_qpolynomial_fold_gist_params().

◆ isl_qpolynomial_fold_lift()

◆ isl_qpolynomial_fold_morph_domain()

◆ isl_qpolynomial_fold_mul_isl_int()

◆ isl_qpolynomial_fold_opt_on_domain()

◆ isl_qpolynomial_fold_peek_list()

◆ isl_qpolynomial_fold_plain_cmp()

int isl_qpolynomial_fold_plain_cmp ( __isl_keep isl_qpolynomial_fold * fold1,
__isl_keep isl_qpolynomial_fold * fold2 )

◆ isl_qpolynomial_fold_realign_domain()

◆ isl_qpolynomial_fold_reset_domain_space()

◆ isl_qpolynomial_fold_reset_space_and_domain()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_reset_space_and_domain ( __isl_take isl_qpolynomial_fold * fold,
__isl_take isl_space * space,
__isl_take isl_space * domain )

◆ isl_qpolynomial_fold_scale()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_scale ( __isl_take isl_qpolynomial_fold * fold,
isl_int v )

Definition at line 2097 of file isl_fold.c.

References __isl_give, __isl_take, and isl_qpolynomial_fold_mul_isl_int().

◆ isl_qpolynomial_fold_substitute_equalities()

◆ 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_get_den()

◆ 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_keep, 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_one()

isl_bool isl_qpolynomial_is_one ( __isl_keep isl_qpolynomial * qp)

Definition at line 600 of file isl_polynomial.c.

References __isl_keep, isl_bool_error, and isl_poly_is_one().

Referenced by isl_pw_qpolynomial_is_one().

◆ isl_qpolynomial_lift()

◆ isl_qpolynomial_morph_domain()

◆ isl_qpolynomial_mul_isl_int()

◆ isl_qpolynomial_opt_on_domain()

◆ isl_qpolynomial_plain_cmp()

int isl_qpolynomial_plain_cmp ( __isl_keep isl_qpolynomial * qp1,
__isl_keep isl_qpolynomial * qp2 )

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

◆ isl_qpolynomial_substitute_equalities()

◆ 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_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_keep, isl_int_set, and n.

Referenced by collect_fixed_sign_terms().