Polly 20.0.0git
Classes | Macros | Functions
isl_fold.c File Reference
#include <isl_map_private.h>
#include <isl_union_map_private.h>
#include <isl_polynomial_private.h>
#include <isl_point_private.h>
#include <isl_space_private.h>
#include <isl_lp_private.h>
#include <isl_seq.h>
#include <isl_mat_private.h>
#include <isl_val_private.h>
#include <isl_vec_private.h>
#include <isl_config.h>
#include <isl_list_templ.c>
#include <isl_pw_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_opt_templ.c>
#include <isl_union_single.c>
#include <isl_union_eval.c>

Go to the source code of this file.

Classes

struct  isl_fold_dims_data
 
struct  isl_fold_set_dim_name_data
 
struct  isl_fold_move_dims_data
 
struct  isl_fold_substitute
 
struct  isl_apply_fold_data
 

Macros

#define EL_BASE   pw_qpolynomial_fold
 
#define isl_qpolynomial_fold_involves_nan   isl_qpolynomial_fold_is_nan
 
#define HAS_TYPE
 
#define PW   isl_pw_qpolynomial_fold
 
#define BASE   qpolynomial_fold
 
#define EL_IS_ZERO   is_empty
 
#define ZERO   zero
 
#define IS_ZERO   is_zero
 
#define FIELD   fold
 
#define DEFAULT_IS_ZERO   1
 
#define BASE   pw_qpolynomial_fold
 

Functions

enum isl_fold isl_fold_type_negate (enum isl_fold type)
 
static __isl_give isl_qpolynomial_foldqpolynomial_fold_alloc (enum isl_fold type, __isl_take isl_space *space, __isl_take isl_qpolynomial_list *list)
 
isl_ctxisl_qpolynomial_fold_get_ctx (__isl_keep isl_qpolynomial_fold *fold)
 
static __isl_keep isl_spaceisl_qpolynomial_fold_peek_domain_space (__isl_keep isl_qpolynomial_fold *fold)
 
__isl_give isl_spaceisl_qpolynomial_fold_get_domain_space (__isl_keep isl_qpolynomial_fold *fold)
 
static __isl_give isl_spaceisl_qpolynomial_fold_take_domain_space (__isl_keep isl_qpolynomial_fold *fold)
 
static __isl_give isl_qpolynomial_foldisl_qpolynomial_fold_restore_domain_space (__isl_keep isl_qpolynomial_fold *fold, __isl_take isl_space *space)
 
__isl_give isl_spaceisl_qpolynomial_fold_get_space (__isl_keep isl_qpolynomial_fold *fold)
 
__isl_keep isl_qpolynomial_list * isl_qpolynomial_fold_peek_list (__isl_keep isl_qpolynomial_fold *fold)
 
static __isl_give isl_qpolynomial_list * isl_qpolynomial_fold_get_list (__isl_keep isl_qpolynomial_fold *fold)
 
static __isl_give isl_qpolynomial_list * isl_qpolynomial_fold_take_list (__isl_keep isl_qpolynomial_fold *fold)
 
static __isl_give isl_qpolynomial_foldisl_qpolynomial_fold_restore_list (__isl_keep isl_qpolynomial_fold *fold, __isl_take isl_qpolynomial_list *list)
 
static __isl_give isl_qpolynomialreset_domain_space (__isl_take isl_qpolynomial *qp, void *user)
 
__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)
 
static isl_bool not_involved (__isl_keep isl_qpolynomial *qp, void *user)
 
static isl_bool isl_qpolynomial_fold_involves_dims (__isl_keep isl_qpolynomial_fold *fold, enum isl_dim_type type, unsigned first, unsigned n)
 
static __isl_give isl_qpolynomialset_dim_name (__isl_take isl_qpolynomial *qp, void *user)
 
static enum isl_dim_type domain_type (enum isl_dim_type type)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_set_dim_name (__isl_take isl_qpolynomial_fold *fold, enum isl_dim_type type, unsigned pos, const char *s)
 
static __isl_give isl_qpolynomialdrop_dims (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_drop_dims (__isl_take isl_qpolynomial_fold *fold, enum isl_dim_type type, unsigned first, unsigned n)
 
static __isl_give isl_qpolynomialinsert_dims (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_insert_dims (__isl_take isl_qpolynomial_fold *fold, enum isl_dim_type type, unsigned first, unsigned n)
 
static int isl_qpolynomial_cst_sign (__isl_keep isl_qpolynomial *qp)
 
static int isl_qpolynomial_aff_sign (__isl_keep isl_set *set, __isl_keep isl_qpolynomial *qp)
 
static int isl_qpolynomial_sign (__isl_keep isl_set *set, __isl_keep isl_qpolynomial *qp)
 
static isl_stat isl_qpolynomial_fold_check_equal_type (__isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2)
 
static isl_stat isl_qpolynomial_fold_check_equal_space (__isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2)
 
static __isl_give isl_qpolynomial_list * merge_lists (__isl_keep isl_set *set, __isl_take isl_qpolynomial_list *list1, __isl_take isl_qpolynomial_list *list2, int better)
 
__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)
 
static __isl_give isl_qpolynomialadd_qpolynomial (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_add_qpolynomial (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_qpolynomial *qp)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_add_on_domain (__isl_keep isl_set *dom, __isl_take isl_qpolynomial_fold *fold1, __isl_take isl_qpolynomial_fold *fold2)
 
static __isl_give isl_qpolynomialsubstitute_equalities (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_substitute_equalities (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_basic_set *eq)
 
static __isl_give isl_qpolynomialgist (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_gist (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_gist_params (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context)
 
static __isl_give isl_qpolynomial_foldisl_qpolynomial_fold_zero_in_space (__isl_take isl_space *space, enum isl_fold type)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_empty (enum isl_fold type, __isl_take isl_space *space)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_alloc (enum isl_fold type, __isl_take isl_qpolynomial *qp)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_copy (__isl_keep isl_qpolynomial_fold *fold)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_dup (__isl_keep isl_qpolynomial_fold *fold)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_cow (__isl_take isl_qpolynomial_fold *fold)
 
__isl_null isl_qpolynomial_foldisl_qpolynomial_fold_free (__isl_take isl_qpolynomial_fold *fold)
 
isl_bool isl_qpolynomial_fold_is_empty (__isl_keep isl_qpolynomial_fold *fold)
 
isl_bool isl_qpolynomial_fold_is_nan (__isl_keep isl_qpolynomial_fold *fold)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_fold (__isl_take isl_qpolynomial_fold *fold1, __isl_take isl_qpolynomial_fold *fold2)
 
__isl_give isl_pw_qpolynomial_foldisl_pw_qpolynomial_fold_fold (__isl_take isl_pw_qpolynomial_fold *pw1, __isl_take isl_pw_qpolynomial_fold *pw2)
 
__isl_give isl_union_pw_qpolynomial_foldisl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold (__isl_take isl_union_pw_qpolynomial_fold *u, __isl_take isl_pw_qpolynomial_fold *part)
 
static isl_stat fold_part (__isl_take isl_pw_qpolynomial_fold *part, void *user)
 
__isl_give isl_union_pw_qpolynomial_foldisl_union_pw_qpolynomial_fold_fold (__isl_take isl_union_pw_qpolynomial_fold *u1, __isl_take isl_union_pw_qpolynomial_fold *u2)
 
__isl_give isl_pw_qpolynomial_foldisl_pw_qpolynomial_fold_from_pw_qpolynomial (enum isl_fold type, __isl_take isl_pw_qpolynomial *pwqp)
 
__isl_give isl_pw_qpolynomial_foldisl_pw_qpolynomial_fold_add (__isl_take isl_pw_qpolynomial_fold *pwf1, __isl_take isl_pw_qpolynomial_fold *pwf2)
 
int isl_qpolynomial_fold_plain_cmp (__isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2)
 
static isl_bool isl_qpolynomial_list_plain_is_equal (unsigned n, isl_qpolynomial_list *list1, isl_qpolynomial_list *list2)
 
static int qpolynomial_cmp (__isl_keep isl_qpolynomial *a, __isl_keep isl_qpolynomial *b, void *user)
 
isl_bool isl_qpolynomial_fold_plain_is_equal (__isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2)
 
__isl_give isl_valisl_qpolynomial_fold_eval (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_point *pnt)
 
size_t isl_pw_qpolynomial_fold_size (__isl_keep isl_pw_qpolynomial_fold *pwf)
 
__isl_give isl_valisl_qpolynomial_fold_opt_on_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *set, int max)
 
static isl_bool qpolynomial_fold_covers_on_domain (__isl_keep isl_set *set, __isl_keep isl_qpolynomial_fold *fold1, __isl_keep isl_qpolynomial_fold *fold2)
 
isl_bool isl_pw_qpolynomial_fold_covers (__isl_keep isl_pw_qpolynomial_fold *pwf1, __isl_keep isl_pw_qpolynomial_fold *pwf2)
 
static __isl_give isl_qpolynomialmorph_domain (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_morph_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_morph *morph)
 
enum isl_fold isl_qpolynomial_fold_get_type (__isl_keep isl_qpolynomial_fold *fold)
 
enum isl_fold isl_pw_qpolynomial_fold_get_type (__isl_keep isl_pw_qpolynomial_fold *pwf)
 
enum isl_fold isl_union_pw_qpolynomial_fold_get_type (__isl_keep isl_union_pw_qpolynomial_fold *upwf)
 
static __isl_give isl_qpolynomiallift (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_lift (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_space *space)
 
isl_stat isl_qpolynomial_fold_foreach_qpolynomial (__isl_keep isl_qpolynomial_fold *fold, isl_stat(*fn)(__isl_take isl_qpolynomial *qp, void *user), void *user)
 
static __isl_give isl_qpolynomialmove_dims (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_move_dims (__isl_take isl_qpolynomial_fold *fold, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
 
static __isl_give isl_qpolynomialsubstitute (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_substitute (__isl_take isl_qpolynomial_fold *fold, enum isl_dim_type type, unsigned first, unsigned n, __isl_keep isl_qpolynomial **subs)
 
static isl_stat add_pwqp (__isl_take isl_pw_qpolynomial *pwqp, void *user)
 
__isl_give isl_union_pw_qpolynomial_foldisl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial (__isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_union_pw_qpolynomial *upwqp)
 
static isl_bool join_compatible (__isl_keep isl_space *space1, __isl_keep isl_space *space2)
 
__isl_give isl_pw_qpolynomial_foldisl_map_apply_pw_qpolynomial_fold (__isl_take isl_map *map, __isl_take isl_pw_qpolynomial_fold *pwf, isl_bool *tight)
 
__isl_give isl_pw_qpolynomial_foldisl_set_apply_pw_qpolynomial_fold (__isl_take isl_set *set, __isl_take isl_pw_qpolynomial_fold *pwf, isl_bool *tight)
 
static isl_stat pw_qpolynomial_fold_apply (__isl_take isl_pw_qpolynomial_fold *pwf, void *user)
 
static isl_stat map_apply (__isl_take isl_map *map, void *user)
 
__isl_give isl_union_pw_qpolynomial_foldisl_union_map_apply_union_pw_qpolynomial_fold (__isl_take isl_union_map *umap, __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight)
 
__isl_give isl_union_pw_qpolynomial_foldisl_union_set_apply_union_pw_qpolynomial_fold (__isl_take isl_union_set *uset, __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight)
 
static __isl_give isl_qpolynomialrealign_domain (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_realign_domain (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_reordering *r)
 
static __isl_give isl_qpolynomialmul_int (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_mul_isl_int (__isl_take isl_qpolynomial_fold *fold, isl_int v)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_scale (__isl_take isl_qpolynomial_fold *fold, isl_int v)
 
static __isl_give isl_qpolynomialscale_val (__isl_take isl_qpolynomial *qp, void *user)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_scale_val (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v)
 
__isl_give isl_qpolynomial_foldisl_qpolynomial_fold_scale_down_val (__isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v)
 

Macro Definition Documentation

◆ BASE [1/2]

#define BASE   qpolynomial_fold

Definition at line 965 of file isl_fold.c.

◆ BASE [2/2]

#define BASE   pw_qpolynomial_fold

Definition at line 965 of file isl_fold.c.

◆ DEFAULT_IS_ZERO

#define DEFAULT_IS_ZERO   1

Definition at line 951 of file isl_fold.c.

◆ EL_BASE

#define EL_BASE   pw_qpolynomial_fold

Definition at line 24 of file isl_fold.c.

◆ EL_IS_ZERO

#define EL_IS_ZERO   is_empty

Definition at line 943 of file isl_fold.c.

◆ FIELD

#define FIELD   fold

Definition at line 949 of file isl_fold.c.

◆ HAS_TYPE

#define HAS_TYPE

Definition at line 936 of file isl_fold.c.

◆ IS_ZERO

#define IS_ZERO   is_zero

Definition at line 947 of file isl_fold.c.

◆ isl_qpolynomial_fold_involves_nan

#define isl_qpolynomial_fold_involves_nan   isl_qpolynomial_fold_is_nan

Definition at line 934 of file isl_fold.c.

◆ PW

#define PW   isl_pw_qpolynomial_fold

Definition at line 939 of file isl_fold.c.

◆ ZERO

#define ZERO   zero

Definition at line 945 of file isl_fold.c.

Function Documentation

◆ add_pwqp()

static isl_stat add_pwqp ( __isl_take isl_pw_qpolynomial pwqp,
void *  user 
)
static

◆ add_qpolynomial()

static __isl_give isl_qpolynomial * add_qpolynomial ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

Definition at line 769 of file isl_fold.c.

References isl_qpolynomial_add(), isl_qpolynomial_copy(), and user.

Referenced by isl_qpolynomial_fold_add_qpolynomial().

◆ domain_type()

static enum isl_dim_type domain_type ( enum isl_dim_type  type)
static

◆ drop_dims()

static __isl_give isl_qpolynomial * drop_dims ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ fold_part()

static isl_stat fold_part ( __isl_take isl_pw_qpolynomial_fold part,
void *  user 
)
static

◆ gist()

static __isl_give isl_qpolynomial * gist ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

Definition at line 893 of file isl_fold.c.

References context, isl_qpolynomial_gist(), isl_set_copy(), and user.

◆ insert_dims()

static __isl_give isl_qpolynomial * insert_dims ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ isl_fold_type_negate()

enum isl_fold isl_fold_type_negate ( enum isl_fold  type)

◆ isl_map_apply_pw_qpolynomial_fold()

__isl_give isl_pw_qpolynomial_fold * isl_map_apply_pw_qpolynomial_fold ( __isl_take isl_map map,
__isl_take isl_pw_qpolynomial_fold pwf,
isl_bool tight 
)

◆ isl_pw_qpolynomial_fold_add()

Definition at line 1277 of file isl_fold.c.

Referenced by add_pwqp().

◆ isl_pw_qpolynomial_fold_covers()

isl_bool isl_pw_qpolynomial_fold_covers ( __isl_keep isl_pw_qpolynomial_fold pwf1,
__isl_keep isl_pw_qpolynomial_fold pwf2 
)

◆ isl_pw_qpolynomial_fold_fold()

◆ isl_pw_qpolynomial_fold_from_pw_qpolynomial()

__isl_give isl_pw_qpolynomial_fold * isl_pw_qpolynomial_fold_from_pw_qpolynomial ( enum isl_fold  type,
__isl_take isl_pw_qpolynomial pwqp 
)

◆ isl_pw_qpolynomial_fold_get_type()

enum isl_fold isl_pw_qpolynomial_fold_get_type ( __isl_keep isl_pw_qpolynomial_fold pwf)

Definition at line 1641 of file isl_fold.c.

References isl_fold_error.

◆ isl_pw_qpolynomial_fold_size()

size_t isl_pw_qpolynomial_fold_size ( __isl_keep isl_pw_qpolynomial_fold pwf)

Definition at line 1433 of file isl_fold.c.

References isl_qpolynomial_fold_peek_list(), isl_size_error, and n.

◆ isl_qpolynomial_aff_sign()

static int isl_qpolynomial_aff_sign ( __isl_keep isl_set set,
__isl_keep isl_qpolynomial qp 
)
static

◆ isl_qpolynomial_cst_sign()

static int isl_qpolynomial_cst_sign ( __isl_keep isl_qpolynomial qp)
static

Definition at line 457 of file isl_fold.c.

References isl_int_sgn, isl_poly_as_cst(), and isl_qpolynomial_is_nan().

Referenced by isl_qpolynomial_sign().

◆ isl_qpolynomial_fold_add_on_domain()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_add_on_domain ( __isl_keep isl_set dom,
__isl_take isl_qpolynomial_fold fold1,
__isl_take isl_qpolynomial_fold fold2 
)

◆ isl_qpolynomial_fold_add_qpolynomial()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_add_qpolynomial ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_qpolynomial qp 
)

◆ isl_qpolynomial_fold_alloc()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_alloc ( enum isl_fold  type,
__isl_take isl_qpolynomial qp 
)

◆ isl_qpolynomial_fold_check_equal_space()

static isl_stat isl_qpolynomial_fold_check_equal_space ( __isl_keep isl_qpolynomial_fold fold1,
__isl_keep isl_qpolynomial_fold fold2 
)
static

◆ isl_qpolynomial_fold_check_equal_type()

static isl_stat isl_qpolynomial_fold_check_equal_type ( __isl_keep isl_qpolynomial_fold fold1,
__isl_keep isl_qpolynomial_fold fold2 
)
static

◆ isl_qpolynomial_fold_copy()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_copy ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_cow()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_cow ( __isl_take isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_drop_dims()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_drop_dims ( __isl_take isl_qpolynomial_fold fold,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)

◆ isl_qpolynomial_fold_dup()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_dup ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_empty()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_empty ( enum isl_fold  type,
__isl_take isl_space space 
)

◆ isl_qpolynomial_fold_eval()

__isl_give isl_val * isl_qpolynomial_fold_eval ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_point pnt 
)

◆ isl_qpolynomial_fold_fold()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_fold ( __isl_take isl_qpolynomial_fold fold1,
__isl_take isl_qpolynomial_fold fold2 
)

◆ isl_qpolynomial_fold_fold_on_domain()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_fold_on_domain ( __isl_keep isl_set set,
__isl_take isl_qpolynomial_fold fold1,
__isl_take isl_qpolynomial_fold fold2 
)

◆ isl_qpolynomial_fold_foreach_qpolynomial()

isl_stat isl_qpolynomial_fold_foreach_qpolynomial ( __isl_keep isl_qpolynomial_fold fold,
isl_stat(*)(__isl_take isl_qpolynomial *qp, void *user fn,
void *  user 
)

Definition at line 1695 of file isl_fold.c.

References fn, isl_qpolynomial_fold_peek_list(), and user.

Referenced by basic_guarded_fold().

◆ isl_qpolynomial_fold_free()

__isl_null isl_qpolynomial_fold * isl_qpolynomial_fold_free ( __isl_take isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_get_ctx()

isl_ctx * isl_qpolynomial_fold_get_ctx ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_get_domain_space()

__isl_give isl_space * isl_qpolynomial_fold_get_domain_space ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_get_list()

static __isl_give isl_qpolynomial_list * isl_qpolynomial_fold_get_list ( __isl_keep isl_qpolynomial_fold fold)
static

◆ isl_qpolynomial_fold_get_space()

__isl_give isl_space * isl_qpolynomial_fold_get_space ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_get_type()

enum isl_fold isl_qpolynomial_fold_get_type ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_gist()

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

◆ isl_qpolynomial_fold_gist_params()

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

◆ isl_qpolynomial_fold_insert_dims()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_insert_dims ( __isl_take isl_qpolynomial_fold fold,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)

◆ isl_qpolynomial_fold_involves_dims()

static isl_bool isl_qpolynomial_fold_involves_dims ( __isl_keep isl_qpolynomial_fold fold,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)
static

◆ isl_qpolynomial_fold_is_empty()

isl_bool isl_qpolynomial_fold_is_empty ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_is_nan()

isl_bool isl_qpolynomial_fold_is_nan ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_lift()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_lift ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_space space 
)

◆ isl_qpolynomial_fold_morph_domain()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_morph_domain ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_morph morph 
)

◆ isl_qpolynomial_fold_move_dims()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_move_dims ( __isl_take isl_qpolynomial_fold fold,
enum isl_dim_type  dst_type,
unsigned  dst_pos,
enum isl_dim_type  src_type,
unsigned  src_pos,
unsigned  n 
)

◆ isl_qpolynomial_fold_mul_isl_int()

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

◆ isl_qpolynomial_fold_opt_on_domain()

__isl_give isl_val * isl_qpolynomial_fold_opt_on_domain ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_set set,
int  max 
)

◆ isl_qpolynomial_fold_peek_domain_space()

static __isl_keep isl_space * isl_qpolynomial_fold_peek_domain_space ( __isl_keep isl_qpolynomial_fold fold)
static

◆ isl_qpolynomial_fold_peek_list()

__isl_keep isl_qpolynomial_list * isl_qpolynomial_fold_peek_list ( __isl_keep isl_qpolynomial_fold fold)

◆ isl_qpolynomial_fold_plain_cmp()

int isl_qpolynomial_fold_plain_cmp ( __isl_keep isl_qpolynomial_fold fold1,
__isl_keep isl_qpolynomial_fold fold2 
)

Definition at line 1289 of file isl_fold.c.

References cmp(), isl_qpolynomial_fold_peek_list(), and isl_qpolynomial_plain_cmp().

◆ isl_qpolynomial_fold_plain_is_equal()

isl_bool isl_qpolynomial_fold_plain_is_equal ( __isl_keep isl_qpolynomial_fold fold1,
__isl_keep isl_qpolynomial_fold fold2 
)

◆ isl_qpolynomial_fold_realign_domain()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_realign_domain ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_reordering r 
)

◆ isl_qpolynomial_fold_reset_domain_space()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_reset_domain_space ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_space 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 
)

Definition at line 264 of file isl_fold.c.

References domain, isl_qpolynomial_fold_reset_domain_space(), and isl_space_free().

◆ isl_qpolynomial_fold_restore_domain_space()

static __isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_restore_domain_space ( __isl_keep isl_qpolynomial_fold fold,
__isl_take isl_space space 
)
static

◆ isl_qpolynomial_fold_restore_list()

static __isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_restore_list ( __isl_keep isl_qpolynomial_fold fold,
__isl_take isl_qpolynomial_list *  list 
)
static

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

◆ isl_qpolynomial_fold_scale_down_val()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_scale_down_val ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_val v 
)

◆ isl_qpolynomial_fold_scale_val()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_scale_val ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_val v 
)

◆ isl_qpolynomial_fold_set_dim_name()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_set_dim_name ( __isl_take isl_qpolynomial_fold fold,
enum isl_dim_type  type,
unsigned  pos,
const char *  s 
)

◆ isl_qpolynomial_fold_substitute()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_substitute ( __isl_take isl_qpolynomial_fold fold,
enum isl_dim_type  type,
unsigned  first,
unsigned  n,
__isl_keep isl_qpolynomial **  subs 
)

◆ isl_qpolynomial_fold_substitute_equalities()

__isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_substitute_equalities ( __isl_take isl_qpolynomial_fold fold,
__isl_take isl_basic_set eq 
)

◆ isl_qpolynomial_fold_take_domain_space()

static __isl_give isl_space * isl_qpolynomial_fold_take_domain_space ( __isl_keep isl_qpolynomial_fold fold)
static

◆ isl_qpolynomial_fold_take_list()

static __isl_give isl_qpolynomial_list * isl_qpolynomial_fold_take_list ( __isl_keep isl_qpolynomial_fold fold)
static

◆ isl_qpolynomial_fold_zero_in_space()

static __isl_give isl_qpolynomial_fold * isl_qpolynomial_fold_zero_in_space ( __isl_take isl_space space,
enum isl_fold  type 
)
static

Definition at line 928 of file isl_fold.c.

References isl_qpolynomial_fold_empty(), isl_space_domain(), and type.

◆ isl_qpolynomial_list_plain_is_equal()

static isl_bool isl_qpolynomial_list_plain_is_equal ( unsigned  n,
isl_qpolynomial_list *  list1,
isl_qpolynomial_list *  list2 
)
static

Definition at line 1327 of file isl_fold.c.

References isl_bool_true, isl_qpolynomial_plain_is_equal(), and n.

Referenced by isl_qpolynomial_fold_plain_is_equal().

◆ isl_qpolynomial_sign()

static int isl_qpolynomial_sign ( __isl_keep isl_set set,
__isl_keep isl_qpolynomial qp 
)
static

◆ isl_set_apply_pw_qpolynomial_fold()

__isl_give isl_pw_qpolynomial_fold * isl_set_apply_pw_qpolynomial_fold ( __isl_take isl_set set,
__isl_take isl_pw_qpolynomial_fold pwf,
isl_bool tight 
)

Definition at line 1928 of file isl_fold.c.

References isl_map_apply_pw_qpolynomial_fold(), set, and tight.

◆ isl_union_map_apply_union_pw_qpolynomial_fold()

__isl_give isl_union_pw_qpolynomial_fold * isl_union_map_apply_union_pw_qpolynomial_fold ( __isl_take isl_union_map umap,
__isl_take isl_union_pw_qpolynomial_fold upwf,
isl_bool tight 
)

◆ isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial()

__isl_give isl_union_pw_qpolynomial_fold * isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial ( __isl_take isl_union_pw_qpolynomial_fold upwf,
__isl_take isl_union_pw_qpolynomial upwqp 
)

◆ isl_union_pw_qpolynomial_fold_fold()

◆ isl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold()

__isl_give isl_union_pw_qpolynomial_fold * isl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold ( __isl_take isl_union_pw_qpolynomial_fold u,
__isl_take isl_pw_qpolynomial_fold part 
)

◆ isl_union_pw_qpolynomial_fold_get_type()

enum isl_fold isl_union_pw_qpolynomial_fold_get_type ( __isl_keep isl_union_pw_qpolynomial_fold upwf)

Definition at line 1649 of file isl_fold.c.

References isl_fold_error.

Referenced by isl_union_map_apply_union_pw_qpolynomial_fold().

◆ isl_union_set_apply_union_pw_qpolynomial_fold()

__isl_give isl_union_pw_qpolynomial_fold * isl_union_set_apply_union_pw_qpolynomial_fold ( __isl_take isl_union_set uset,
__isl_take isl_union_pw_qpolynomial_fold upwf,
isl_bool tight 
)

◆ join_compatible()

static isl_bool join_compatible ( __isl_keep isl_space space1,
__isl_keep isl_space space2 
)
static

◆ lift()

static __isl_give isl_qpolynomial * lift ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

Definition at line 1660 of file isl_fold.c.

References isl_qpolynomial_lift(), isl_space_copy(), and user.

Referenced by foreach_lifted_subset(), and isl_qpolynomial_fold_lift().

◆ map_apply()

static isl_stat map_apply ( __isl_take isl_map map,
void *  user 
)
static

◆ merge_lists()

static __isl_give isl_qpolynomial_list * merge_lists ( __isl_keep isl_set set,
__isl_take isl_qpolynomial_list *  list1,
__isl_take isl_qpolynomial_list *  list2,
int  better 
)
static

◆ morph_domain()

static __isl_give isl_qpolynomial * morph_domain ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

Definition at line 1597 of file isl_fold.c.

References isl_morph_copy(), isl_qpolynomial_morph_domain(), and user.

Referenced by FN(), and isl_qpolynomial_fold_morph_domain().

◆ move_dims()

static __isl_give isl_qpolynomial * move_dims ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ mul_int()

static __isl_give isl_qpolynomial * mul_int ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

Definition at line 2059 of file isl_fold.c.

References isl_qpolynomial_mul_isl_int(), and user.

Referenced by isl_qpolynomial_fold_mul_isl_int().

◆ not_involved()

static isl_bool not_involved ( __isl_keep isl_qpolynomial qp,
void *  user 
)
static

◆ pw_qpolynomial_fold_apply()

static isl_stat pw_qpolynomial_fold_apply ( __isl_take isl_pw_qpolynomial_fold pwf,
void *  user 
)
static

◆ qpolynomial_cmp()

static int qpolynomial_cmp ( __isl_keep isl_qpolynomial a,
__isl_keep isl_qpolynomial b,
void *  user 
)
static

Definition at line 1349 of file isl_fold.c.

References a(), b(), and isl_qpolynomial_plain_cmp().

Referenced by isl_qpolynomial_fold_plain_is_equal().

◆ qpolynomial_fold_alloc()

static __isl_give isl_qpolynomial_fold * qpolynomial_fold_alloc ( enum isl_fold  type,
__isl_take isl_space space,
__isl_take isl_qpolynomial_list *  list 
)
static

◆ qpolynomial_fold_covers_on_domain()

static isl_bool qpolynomial_fold_covers_on_domain ( __isl_keep isl_set set,
__isl_keep isl_qpolynomial_fold fold1,
__isl_keep isl_qpolynomial_fold fold2 
)
static

◆ realign_domain()

static __isl_give isl_qpolynomial * realign_domain ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ reset_domain_space()

static __isl_give isl_qpolynomial * reset_domain_space ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ scale_val()

static __isl_give isl_qpolynomial * scale_val ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

Definition at line 2106 of file isl_fold.c.

References isl_qpolynomial_scale_val(), isl_val_copy(), and user.

Referenced by FN(), and isl_qpolynomial_fold_scale_val().

◆ set_dim_name()

static __isl_give isl_qpolynomial * set_dim_name ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ substitute()

static __isl_give isl_qpolynomial * substitute ( __isl_take isl_qpolynomial qp,
void *  user 
)
static

◆ substitute_equalities()

static __isl_give isl_qpolynomial * substitute_equalities ( __isl_take isl_qpolynomial qp,
void *  user 
)
static