Polly 19.0.0git
Macros | Functions
isl_constraint.c File Reference
#include <isl_map_private.h>
#include <isl_constraint_private.h>
#include <isl_space_private.h>
#include <isl_seq.h>
#include <isl_aff_private.h>
#include <isl_local_space_private.h>
#include <isl_val_private.h>
#include <isl_vec_private.h>
#include <bset_to_bmap.c>
#include <bset_from_bmap.c>
#include <isl_list_templ.c>
#include "check_type_range_templ.c"

Go to the source code of this file.

Macros

#define EL_BASE   constraint
 
#define TYPE   isl_constraint
 

Functions

isl_ctxisl_constraint_get_ctx (__isl_keep isl_constraint *c)
 
static isl_size n (__isl_keep isl_constraint *c, enum isl_dim_type type)
 
static unsigned offset (__isl_keep isl_constraint *c, enum isl_dim_type type)
 
__isl_give isl_constraintisl_constraint_alloc_vec (int eq, __isl_take isl_local_space *ls, __isl_take isl_vec *v)
 
__isl_give isl_constraintisl_constraint_alloc (int eq, __isl_take isl_local_space *ls)
 
__isl_give isl_constraintisl_basic_map_constraint (__isl_take isl_basic_map *bmap, isl_int **line)
 
__isl_give isl_constraintisl_basic_set_constraint (__isl_take isl_basic_set *bset, isl_int **line)
 
__isl_give isl_constraintisl_constraint_alloc_equality (__isl_take isl_local_space *ls)
 
__isl_give isl_constraintisl_constraint_alloc_inequality (__isl_take isl_local_space *ls)
 
__isl_give isl_constraintisl_constraint_dup (__isl_keep isl_constraint *c)
 
__isl_give isl_constraintisl_constraint_cow (__isl_take isl_constraint *c)
 
__isl_give isl_constraintisl_constraint_copy (__isl_keep isl_constraint *constraint)
 
__isl_null isl_constraintisl_constraint_free (__isl_take isl_constraint *c)
 
isl_size isl_basic_map_n_constraint (__isl_keep isl_basic_map *bmap)
 
isl_size isl_basic_set_n_constraint (__isl_keep isl_basic_set *bset)
 
isl_stat isl_basic_map_foreach_constraint (__isl_keep isl_basic_map *bmap, isl_stat(*fn)(__isl_take isl_constraint *c, void *user), void *user)
 
isl_stat isl_basic_set_foreach_constraint (__isl_keep isl_basic_set *bset, isl_stat(*fn)(__isl_take isl_constraint *c, void *user), void *user)
 
static isl_stat collect_constraint (__isl_take isl_constraint *constraint, void *user)
 
__isl_give isl_constraint_list * isl_basic_map_get_constraint_list (__isl_keep isl_basic_map *bmap)
 
__isl_give isl_constraint_list * isl_basic_set_get_constraint_list (__isl_keep isl_basic_set *bset)
 
int isl_constraint_is_equal (__isl_keep isl_constraint *constraint1, __isl_keep isl_constraint *constraint2)
 
__isl_give isl_basic_mapisl_basic_map_add_constraint (__isl_take isl_basic_map *bmap, __isl_take isl_constraint *constraint)
 
__isl_give isl_basic_setisl_basic_set_add_constraint (__isl_take isl_basic_set *bset, __isl_take isl_constraint *constraint)
 
__isl_give isl_mapisl_map_add_constraint (__isl_take isl_map *map, __isl_take isl_constraint *constraint)
 
__isl_give isl_setisl_set_add_constraint (__isl_take isl_set *set, __isl_take isl_constraint *constraint)
 
static __isl_keep isl_spaceisl_constraint_peek_space (__isl_keep isl_constraint *constraint)
 
__isl_give isl_spaceisl_constraint_get_space (__isl_keep isl_constraint *constraint)
 
__isl_give isl_local_spaceisl_constraint_get_local_space (__isl_keep isl_constraint *constraint)
 
isl_size isl_constraint_dim (__isl_keep isl_constraint *constraint, enum isl_dim_type type)
 
static isl_bool isl_constraint_involves_dims (__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned first, unsigned n)
 
isl_bool isl_constraint_is_lower_bound (__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned pos)
 
isl_bool isl_constraint_is_upper_bound (__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned pos)
 
const char * isl_constraint_get_dim_name (__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned pos)
 
void isl_constraint_get_constant (__isl_keep isl_constraint *constraint, isl_int *v)
 
__isl_give isl_valisl_constraint_get_constant_val (__isl_keep isl_constraint *constraint)
 
void isl_constraint_get_coefficient (__isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos, isl_int *v)
 
__isl_give isl_valisl_constraint_get_coefficient_val (__isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos)
 
__isl_give isl_affisl_constraint_get_div (__isl_keep isl_constraint *constraint, int pos)
 
__isl_give isl_constraintisl_constraint_set_constant (__isl_take isl_constraint *constraint, isl_int v)
 
__isl_give isl_constraintisl_constraint_set_constant_val (__isl_take isl_constraint *constraint, __isl_take isl_val *v)
 
__isl_give isl_constraintisl_constraint_set_constant_si (__isl_take isl_constraint *constraint, int v)
 
__isl_give isl_constraintisl_constraint_set_coefficient_val (__isl_take isl_constraint *constraint, enum isl_dim_type type, int pos, __isl_take isl_val *v)
 
__isl_give isl_constraintisl_constraint_set_coefficient_si (__isl_take isl_constraint *constraint, enum isl_dim_type type, int pos, int v)
 
__isl_give isl_constraintisl_constraint_negate (__isl_take isl_constraint *constraint)
 
isl_bool isl_constraint_is_equality (struct isl_constraint *constraint)
 
isl_bool isl_constraint_is_div_constraint (__isl_keep isl_constraint *constraint)
 
isl_bool isl_constraint_is_div_equality (__isl_keep isl_constraint *constraint, unsigned div)
 
__isl_give isl_basic_mapisl_basic_map_from_constraint (__isl_take isl_constraint *constraint)
 
__isl_give isl_basic_setisl_basic_set_from_constraint (__isl_take isl_constraint *constraint)
 
isl_bool isl_basic_map_has_defining_equality (__isl_keep isl_basic_map *bmap, enum isl_dim_type type, int pos, __isl_give isl_constraint **c)
 
isl_bool isl_basic_set_has_defining_equality (__isl_keep isl_basic_set *bset, enum isl_dim_type type, int pos, __isl_give isl_constraint **c)
 
isl_bool isl_basic_set_has_defining_inequalities (struct isl_basic_set *bset, enum isl_dim_type type, int pos, struct isl_constraint **lower, struct isl_constraint **upper)
 
static __isl_give isl_basic_setadd_larger_bound_constraint (__isl_take isl_basic_set *bset, isl_int *a, isl_int *b, unsigned abs_pos, int strict)
 
static __isl_give isl_basic_setset_smallest_upper_bound (__isl_keep isl_basic_set *context, __isl_keep isl_basic_set *bset, unsigned abs_pos, int n_upper, int u)
 
static __isl_give isl_basic_setset_largest_lower_bound (__isl_keep isl_basic_set *context, __isl_keep isl_basic_set *bset, unsigned abs_pos, int n_lower, int l)
 
static isl_stat foreach_upper_bound (__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned abs_pos, __isl_take isl_basic_set *context, int n_upper, isl_stat(*fn)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user), void *user)
 
static isl_stat foreach_lower_bound (__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned abs_pos, __isl_take isl_basic_set *context, int n_lower, isl_stat(*fn)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user), void *user)
 
static isl_stat foreach_bound_pair (__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned abs_pos, __isl_take isl_basic_set *context, int n_lower, int n_upper, isl_stat(*fn)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user), void *user)
 
isl_stat isl_basic_set_foreach_bound_pair (__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned pos, isl_stat(*fn)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user), void *user)
 
__isl_give isl_affisl_constraint_get_bound (__isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos)
 
__isl_give isl_affisl_constraint_get_aff (__isl_keep isl_constraint *constraint)
 
static __isl_give isl_constraintisl_constraint_alloc_aff (int eq, __isl_take isl_aff *aff)
 
__isl_give isl_constraintisl_equality_from_aff (__isl_take isl_aff *aff)
 
__isl_give isl_constraintisl_inequality_from_aff (__isl_take isl_aff *aff)
 
int isl_constraint_plain_cmp (__isl_keep isl_constraint *c1, __isl_keep isl_constraint *c2)
 
int isl_constraint_cmp_last_non_zero (__isl_keep isl_constraint *c1, __isl_keep isl_constraint *c2)
 

Macro Definition Documentation

◆ EL_BASE

#define EL_BASE   constraint

Definition at line 26 of file isl_constraint.c.

◆ TYPE

#define TYPE   isl_constraint

Definition at line 398 of file isl_constraint.c.

Function Documentation

◆ add_larger_bound_constraint()

static __isl_give isl_basic_set * add_larger_bound_constraint ( __isl_take isl_basic_set bset,
isl_int a,
isl_int b,
unsigned  abs_pos,
int  strict 
)
static

◆ collect_constraint()

static isl_stat collect_constraint ( __isl_take isl_constraint constraint,
void *  user 
)
static

◆ foreach_bound_pair()

static isl_stat foreach_bound_pair ( __isl_keep isl_basic_set bset,
enum isl_dim_type  type,
unsigned  abs_pos,
__isl_take isl_basic_set context,
int  n_lower,
int  n_upper,
isl_stat(*)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user fn,
void *  user 
)
static

◆ foreach_lower_bound()

static isl_stat foreach_lower_bound ( __isl_keep isl_basic_set bset,
enum isl_dim_type  type,
unsigned  abs_pos,
__isl_take isl_basic_set context,
int  n_lower,
isl_stat(*)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user fn,
void *  user 
)
static

◆ foreach_upper_bound()

static isl_stat foreach_upper_bound ( __isl_keep isl_basic_set bset,
enum isl_dim_type  type,
unsigned  abs_pos,
__isl_take isl_basic_set context,
int  n_upper,
isl_stat(*)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user fn,
void *  user 
)
static

◆ isl_basic_map_add_constraint()

__isl_give isl_basic_map * isl_basic_map_add_constraint ( __isl_take isl_basic_map bmap,
__isl_take isl_constraint constraint 
)

◆ isl_basic_map_constraint()

__isl_give isl_constraint * isl_basic_map_constraint ( __isl_take isl_basic_map bmap,
isl_int **  line 
)

◆ isl_basic_map_foreach_constraint()

isl_stat isl_basic_map_foreach_constraint ( __isl_keep isl_basic_map bmap,
isl_stat(*)(__isl_take isl_constraint *c, void *user fn,
void *  user 
)

◆ isl_basic_map_from_constraint()

__isl_give isl_basic_map * isl_basic_map_from_constraint ( __isl_take isl_constraint constraint)

◆ isl_basic_map_get_constraint_list()

__isl_give isl_constraint_list * isl_basic_map_get_constraint_list ( __isl_keep isl_basic_map bmap)

◆ isl_basic_map_has_defining_equality()

isl_bool isl_basic_map_has_defining_equality ( __isl_keep isl_basic_map bmap,
enum isl_dim_type  type,
int  pos,
__isl_give isl_constraint **  c 
)

◆ isl_basic_map_n_constraint()

isl_size isl_basic_map_n_constraint ( __isl_keep isl_basic_map bmap)

◆ isl_basic_set_add_constraint()

__isl_give isl_basic_set * isl_basic_set_add_constraint ( __isl_take isl_basic_set bset,
__isl_take isl_constraint constraint 
)

◆ isl_basic_set_constraint()

__isl_give isl_constraint * isl_basic_set_constraint ( __isl_take isl_basic_set bset,
isl_int **  line 
)

◆ isl_basic_set_foreach_bound_pair()

isl_stat isl_basic_set_foreach_bound_pair ( __isl_keep isl_basic_set bset,
enum isl_dim_type  type,
unsigned  pos,
isl_stat(*)(__isl_take isl_constraint *lower, __isl_take isl_constraint *upper, __isl_take isl_basic_set *bset, void *user fn,
void *  user 
)

◆ isl_basic_set_foreach_constraint()

isl_stat isl_basic_set_foreach_constraint ( __isl_keep isl_basic_set bset,
isl_stat(*)(__isl_take isl_constraint *c, void *user fn,
void *  user 
)

◆ isl_basic_set_from_constraint()

__isl_give isl_basic_set * isl_basic_set_from_constraint ( __isl_take isl_constraint constraint)

◆ isl_basic_set_get_constraint_list()

__isl_give isl_constraint_list * isl_basic_set_get_constraint_list ( __isl_keep isl_basic_set bset)

◆ isl_basic_set_has_defining_equality()

isl_bool isl_basic_set_has_defining_equality ( __isl_keep isl_basic_set bset,
enum isl_dim_type  type,
int  pos,
__isl_give isl_constraint **  c 
)

Definition at line 795 of file isl_constraint.c.

References bset_to_bmap(), isl_basic_map_has_defining_equality(), pos(), and type.

◆ isl_basic_set_has_defining_inequalities()

isl_bool isl_basic_set_has_defining_inequalities ( struct isl_basic_set bset,
enum isl_dim_type  type,
int  pos,
struct isl_constraint **  lower,
struct isl_constraint **  upper 
)

◆ isl_basic_set_n_constraint()

isl_size isl_basic_set_n_constraint ( __isl_keep isl_basic_set bset)

Definition at line 201 of file isl_constraint.c.

References isl_basic_map_n_constraint().

Referenced by multiplicative_call_base(), and test_intersect_1().

◆ isl_constraint_alloc()

__isl_give isl_constraint * isl_constraint_alloc ( int  eq,
__isl_take isl_local_space ls 
)

◆ isl_constraint_alloc_aff()

static __isl_give isl_constraint * isl_constraint_alloc_aff ( int  eq,
__isl_take isl_aff aff 
)
static

◆ isl_constraint_alloc_equality()

__isl_give isl_constraint * isl_constraint_alloc_equality ( __isl_take isl_local_space ls)

◆ isl_constraint_alloc_inequality()

__isl_give isl_constraint * isl_constraint_alloc_inequality ( __isl_take isl_local_space ls)

◆ isl_constraint_alloc_vec()

__isl_give isl_constraint * isl_constraint_alloc_vec ( int  eq,
__isl_take isl_local_space ls,
__isl_take isl_vec v 
)

◆ isl_constraint_cmp_last_non_zero()

int isl_constraint_cmp_last_non_zero ( __isl_keep isl_constraint c1,
__isl_keep isl_constraint c2 
)

Definition at line 1348 of file isl_constraint.c.

References c1, c2, cmp(), isl_int_abs_cmp, isl_local_space_cmp(), and isl_seq_last_non_zero().

Referenced by cmp_constraint().

◆ isl_constraint_copy()

__isl_give isl_constraint * isl_constraint_copy ( __isl_keep isl_constraint constraint)

◆ isl_constraint_cow()

__isl_give isl_constraint * isl_constraint_cow ( __isl_take isl_constraint c)

◆ isl_constraint_dim()

isl_size isl_constraint_dim ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type 
)

◆ isl_constraint_dup()

__isl_give isl_constraint * isl_constraint_dup ( __isl_keep isl_constraint c)

Definition at line 140 of file isl_constraint.c.

References isl_constraint_alloc_vec(), isl_local_space_copy(), and isl_vec_copy().

Referenced by isl_constraint_cow().

◆ isl_constraint_free()

__isl_null isl_constraint * isl_constraint_free ( __isl_take isl_constraint c)

◆ isl_constraint_get_aff()

__isl_give isl_aff * isl_constraint_get_aff ( __isl_keep isl_constraint constraint)

◆ isl_constraint_get_bound()

__isl_give isl_aff * isl_constraint_get_bound ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
int  pos 
)

◆ isl_constraint_get_coefficient()

void isl_constraint_get_coefficient ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
int  pos,
isl_int v 
)

◆ isl_constraint_get_coefficient_val()

__isl_give isl_val * isl_constraint_get_coefficient_val ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
int  pos 
)

◆ isl_constraint_get_constant()

void isl_constraint_get_constant ( __isl_keep isl_constraint constraint,
isl_int v 
)

Definition at line 470 of file isl_constraint.c.

References isl_vec::el, isl_int_set, and isl_constraint::v.

Referenced by normalize_stride_div().

◆ isl_constraint_get_constant_val()

__isl_give isl_val * isl_constraint_get_constant_val ( __isl_keep isl_constraint constraint)

◆ isl_constraint_get_ctx()

isl_ctx * isl_constraint_get_ctx ( __isl_keep isl_constraint c)

◆ isl_constraint_get_dim_name()

const char * isl_constraint_get_dim_name ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
unsigned  pos 
)

Definition at line 463 of file isl_constraint.c.

References isl_local_space_get_dim_name(), pos(), and type.

◆ isl_constraint_get_div()

__isl_give isl_aff * isl_constraint_get_div ( __isl_keep isl_constraint constraint,
int  pos 
)

Definition at line 518 of file isl_constraint.c.

References isl_local_space_get_div(), and pos().

◆ isl_constraint_get_local_space()

__isl_give isl_local_space * isl_constraint_get_local_space ( __isl_keep isl_constraint constraint)

Definition at line 383 of file isl_constraint.c.

References isl_local_space_copy().

Referenced by isl_printer_print_constraint().

◆ isl_constraint_get_space()

__isl_give isl_space * isl_constraint_get_space ( __isl_keep isl_constraint constraint)

Definition at line 377 of file isl_constraint.c.

References isl_local_space_get_space().

Referenced by isl_basic_map_add_constraint().

◆ isl_constraint_involves_dims()

static isl_bool isl_constraint_involves_dims ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
unsigned  first,
unsigned  n 
)
static

◆ isl_constraint_is_div_constraint()

isl_bool isl_constraint_is_div_constraint ( __isl_keep isl_constraint constraint)

◆ isl_constraint_is_div_equality()

isl_bool isl_constraint_is_div_equality ( __isl_keep isl_constraint constraint,
unsigned  div 
)

◆ isl_constraint_is_equal()

int isl_constraint_is_equal ( __isl_keep isl_constraint constraint1,
__isl_keep isl_constraint constraint2 
)

Definition at line 305 of file isl_constraint.c.

References equal, isl_local_space_is_equal(), and isl_vec_is_equal().

◆ isl_constraint_is_equality()

isl_bool isl_constraint_is_equality ( struct isl_constraint constraint)

◆ isl_constraint_is_lower_bound()

isl_bool isl_constraint_is_lower_bound ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
unsigned  pos 
)

◆ isl_constraint_is_upper_bound()

isl_bool isl_constraint_is_upper_bound ( __isl_keep isl_constraint constraint,
enum isl_dim_type  type,
unsigned  pos 
)

◆ isl_constraint_negate()

__isl_give isl_constraint * isl_constraint_negate ( __isl_take isl_constraint constraint)

◆ isl_constraint_peek_space()

static __isl_keep isl_space * isl_constraint_peek_space ( __isl_keep isl_constraint constraint)
static

◆ isl_constraint_plain_cmp()

int isl_constraint_plain_cmp ( __isl_keep isl_constraint c1,
__isl_keep isl_constraint c2 
)

Definition at line 1313 of file isl_constraint.c.

References c1, c2, cmp(), isl_local_space_cmp(), isl_seq_cmp(), and isl_seq_last_non_zero().

Referenced by cmp_constraint().

◆ isl_constraint_set_coefficient_si()

__isl_give isl_constraint * isl_constraint_set_coefficient_si ( __isl_take isl_constraint constraint,
enum isl_dim_type  type,
int  pos,
int  v 
)

◆ isl_constraint_set_coefficient_val()

__isl_give isl_constraint * isl_constraint_set_coefficient_val ( __isl_take isl_constraint constraint,
enum isl_dim_type  type,
int  pos,
__isl_take isl_val v 
)

◆ isl_constraint_set_constant()

__isl_give isl_constraint * isl_constraint_set_constant ( __isl_take isl_constraint constraint,
isl_int  v 
)

◆ isl_constraint_set_constant_si()

__isl_give isl_constraint * isl_constraint_set_constant_si ( __isl_take isl_constraint constraint,
int  v 
)

◆ isl_constraint_set_constant_val()

__isl_give isl_constraint * isl_constraint_set_constant_val ( __isl_take isl_constraint constraint,
__isl_take isl_val v 
)

◆ isl_equality_from_aff()

__isl_give isl_constraint * isl_equality_from_aff ( __isl_take isl_aff aff)

Definition at line 1292 of file isl_constraint.c.

References aff, and isl_constraint_alloc_aff().

Referenced by aff_zero_basic_set(), and at_offset().

◆ isl_inequality_from_aff()

__isl_give isl_constraint * isl_inequality_from_aff ( __isl_take isl_aff aff)

Definition at line 1300 of file isl_constraint.c.

References aff, and isl_constraint_alloc_aff().

Referenced by aff_nonneg_basic_set(), and aff_pos_basic_set().

◆ isl_map_add_constraint()

__isl_give isl_map * isl_map_add_constraint ( __isl_take isl_map map,
__isl_take isl_constraint constraint 
)

◆ isl_set_add_constraint()

__isl_give isl_set * isl_set_add_constraint ( __isl_take isl_set set,
__isl_take isl_constraint constraint 
)

Definition at line 363 of file isl_constraint.c.

References isl_map_add_constraint(), and set.

Referenced by isl::set::add_constraint(), foreach_iteration(), and get_expanded_n_div().

◆ n()

static isl_size n ( __isl_keep isl_constraint c,
enum isl_dim_type  type 
)
static

Definition at line 35 of file isl_constraint.c.

References isl_local_space_dim(), and type.

◆ offset()

static unsigned offset ( __isl_keep isl_constraint c,
enum isl_dim_type  type 
)
static

Definition at line 40 of file isl_constraint.c.

References isl_local_space_offset(), and type.

◆ set_largest_lower_bound()

static __isl_give isl_basic_set * set_largest_lower_bound ( __isl_keep isl_basic_set context,
__isl_keep isl_basic_set bset,
unsigned  abs_pos,
int  n_lower,
int  l 
)
static

◆ set_smallest_upper_bound()

static __isl_give isl_basic_set * set_smallest_upper_bound ( __isl_keep isl_basic_set context,
__isl_keep isl_basic_set bset,
unsigned  abs_pos,
int  n_upper,
int  u 
)
static