Polly 19.0.0git
Classes | Functions
isl_map_subtract.c File Reference
#include <isl_map_private.h>
#include <isl_seq.h>
#include <isl/set.h>
#include <isl/map.h>
#include "isl_tab.h"
#include <isl_point_private.h>
#include <isl_vec_private.h>
#include <set_to_map.c>
#include <set_from_map.c>

Go to the source code of this file.

Classes

struct  isl_diff_collector
 
struct  isl_subtract_diff_collector
 
struct  isl_is_empty_diff_collector
 

Functions

static void expand_constraint (isl_vec *v, unsigned dim, isl_int *c, int *div_map, unsigned n_div)
 
static isl_stat tab_add_constraints (struct isl_tab *tab, __isl_keep isl_basic_map *bmap, int *div_map)
 
static isl_stat tab_add_constraint (struct isl_tab *tab, __isl_keep isl_basic_map *bmap, int *div_map, int c, int oppose)
 
static isl_stat tab_add_divs (struct isl_tab *tab, __isl_keep isl_basic_map *bmap, int **div_map)
 
static int tab_freeze_constraints (struct isl_tab *tab)
 
static int n_non_redundant (isl_ctx *ctx, struct isl_tab *tab, int offset, int **index)
 
static isl_stat basic_map_collect_diff (__isl_take isl_basic_map *bmap, __isl_take isl_map *map, struct isl_diff_collector *dc)
 
static isl_stat basic_map_subtract_add (struct isl_diff_collector *dc, __isl_take isl_basic_map *bmap)
 
static __isl_give isl_mapbasic_map_subtract (__isl_take isl_basic_map *bmap, __isl_take isl_map *map)
 
static __isl_give isl_mapreplace_pair_by_empty (__isl_take isl_map *map1, __isl_take isl_map *map2)
 
__isl_give isl_mapisl_map_subtract (__isl_take isl_map *map1, __isl_take isl_map *map2)
 
__isl_give isl_setisl_set_subtract (__isl_take isl_set *set1, __isl_take isl_set *set2)
 
__isl_give isl_mapisl_map_subtract_domain (__isl_take isl_map *map, __isl_take isl_set *dom)
 
__isl_give isl_mapisl_map_subtract_range (__isl_take isl_map *map, __isl_take isl_set *dom)
 
static isl_stat basic_map_is_empty_add (struct isl_diff_collector *dc, __isl_take isl_basic_map *bmap)
 
static isl_bool basic_map_diff_is_empty (__isl_keep isl_basic_map *bmap, __isl_keep isl_map *map)
 
static isl_bool map_diff_is_empty (__isl_keep isl_map *map1, __isl_keep isl_map *map2)
 
isl_bool isl_basic_map_plain_is_singleton (__isl_keep isl_basic_map *bmap)
 
isl_bool isl_map_plain_is_singleton (__isl_keep isl_map *map)
 
static __isl_give isl_pointsingleton_extract_point (__isl_keep isl_basic_map *bmap)
 
static isl_bool map_is_singleton_subset (__isl_keep isl_map *map1, __isl_keep isl_map *map2)
 
static isl_bool map_is_subset (__isl_keep isl_map *map1, __isl_keep isl_map *map2)
 
isl_bool isl_map_is_subset (__isl_keep isl_map *map1, __isl_keep isl_map *map2)
 
isl_bool isl_set_is_subset (__isl_keep isl_set *set1, __isl_keep isl_set *set2)
 
__isl_give isl_mapisl_map_make_disjoint (__isl_take isl_map *map)
 
__isl_give isl_setisl_set_make_disjoint (__isl_take isl_set *set)
 
__isl_give isl_mapisl_map_complement (__isl_take isl_map *map)
 
__isl_give isl_setisl_set_complement (__isl_take isl_set *set)
 

Function Documentation

◆ basic_map_collect_diff()

static isl_stat basic_map_collect_diff ( __isl_take isl_basic_map bmap,
__isl_take isl_map map,
struct isl_diff_collector dc 
)
static

◆ basic_map_diff_is_empty()

static isl_bool basic_map_diff_is_empty ( __isl_keep isl_basic_map bmap,
__isl_keep isl_map map 
)
static

◆ basic_map_is_empty_add()

static isl_stat basic_map_is_empty_add ( struct isl_diff_collector dc,
__isl_take isl_basic_map bmap 
)
static

◆ basic_map_subtract()

static __isl_give isl_map * basic_map_subtract ( __isl_take isl_basic_map bmap,
__isl_take isl_map map 
)
static

◆ basic_map_subtract_add()

static isl_stat basic_map_subtract_add ( struct isl_diff_collector dc,
__isl_take isl_basic_map bmap 
)
static

◆ expand_constraint()

static void expand_constraint ( isl_vec v,
unsigned  dim,
isl_int c,
int *  div_map,
unsigned  n_div 
)
static

◆ isl_basic_map_plain_is_singleton()

isl_bool isl_basic_map_plain_is_singleton ( __isl_keep isl_basic_map bmap)

◆ isl_map_complement()

__isl_give isl_map * isl_map_complement ( __isl_take isl_map map)

◆ isl_map_is_subset()

isl_bool isl_map_is_subset ( __isl_keep isl_map map1,
__isl_keep isl_map map2 
)

◆ isl_map_make_disjoint()

__isl_give isl_map * isl_map_make_disjoint ( __isl_take isl_map map)

◆ isl_map_plain_is_singleton()

isl_bool isl_map_plain_is_singleton ( __isl_keep isl_map map)

Definition at line 732 of file isl_map_subtract.c.

References isl_basic_map_plain_is_singleton(), isl_bool_error, isl_bool_false, and map.

Referenced by map_is_subset().

◆ isl_map_subtract()

__isl_give isl_map * isl_map_subtract ( __isl_take isl_map map1,
__isl_take isl_map map2 
)

◆ isl_map_subtract_domain()

__isl_give isl_map * isl_map_subtract_domain ( __isl_take isl_map map,
__isl_take isl_set dom 
)

◆ isl_map_subtract_range()

__isl_give isl_map * isl_map_subtract_range ( __isl_take isl_map map,
__isl_take isl_set dom 
)

◆ isl_set_complement()

__isl_give isl_set * isl_set_complement ( __isl_take isl_set set)

◆ isl_set_is_subset()

isl_bool isl_set_is_subset ( __isl_keep isl_set set1,
__isl_keep isl_set set2 
)

◆ isl_set_make_disjoint()

__isl_give isl_set * isl_set_make_disjoint ( __isl_take isl_set set)

◆ isl_set_subtract()

__isl_give isl_set * isl_set_subtract ( __isl_take isl_set set1,
__isl_take isl_set set2 
)

◆ map_diff_is_empty()

static isl_bool map_diff_is_empty ( __isl_keep isl_map map1,
__isl_keep isl_map map2 
)
static

Definition at line 694 of file isl_map_subtract.c.

References basic_map_diff_is_empty(), isl_bool_error, isl_bool_true, map1, and map2.

Referenced by map_is_subset().

◆ map_is_singleton_subset()

static isl_bool map_is_singleton_subset ( __isl_keep isl_map map1,
__isl_keep isl_map map2 
)
static

◆ map_is_subset()

static isl_bool map_is_subset ( __isl_keep isl_map map1,
__isl_keep isl_map map2 
)
static

◆ n_non_redundant()

static int n_non_redundant ( isl_ctx ctx,
struct isl_tab tab,
int  offset,
int **  index 
)
static

◆ replace_pair_by_empty()

static __isl_give isl_map * replace_pair_by_empty ( __isl_take isl_map map1,
__isl_take isl_map map2 
)
static

Definition at line 514 of file isl_map_subtract.c.

References isl_map_empty(), isl_map_free(), isl_map_get_space(), map1, and map2.

Referenced by isl_map_subtract().

◆ singleton_extract_point()

static __isl_give isl_point * singleton_extract_point ( __isl_keep isl_basic_map bmap)
static

◆ tab_add_constraint()

static isl_stat tab_add_constraint ( struct isl_tab tab,
__isl_keep isl_basic_map bmap,
int *  div_map,
int  c,
int  oppose 
)
static

◆ tab_add_constraints()

static isl_stat tab_add_constraints ( struct isl_tab tab,
__isl_keep isl_basic_map bmap,
int *  div_map 
)
static

◆ tab_add_divs()

static isl_stat tab_add_divs ( struct isl_tab tab,
__isl_keep isl_basic_map bmap,
int **  div_map 
)
static

◆ tab_freeze_constraints()

static int tab_freeze_constraints ( struct isl_tab tab)
static

Definition at line 226 of file isl_map_subtract.c.

References isl_tab_freeze_constraint(), and isl_tab::n_con.

Referenced by basic_map_collect_diff().