Polly 19.0.0git
Classes | Functions
isl_farkas.c File Reference
#include <isl_map_private.h>
#include <isl/set.h>
#include <isl_space_private.h>
#include <isl_seq.h>
#include <isl_aff_private.h>
#include <isl_mat_private.h>
#include <isl_factorization.h>

Go to the source code of this file.

Classes

struct  isl_coefficients_factor_data
 
struct  isl_coefficients_product_data
 

Functions

static __isl_give isl_spaceisl_space_prefix (__isl_take isl_space *space, const char *prefix)
 
static __isl_give isl_spaceisl_space_coefficients (__isl_take isl_space *space)
 
static __isl_give isl_spaceisl_space_unprefix (__isl_take isl_space *space, enum isl_dim_type type, const char *prefix)
 
static __isl_give isl_spaceisl_space_solutions (__isl_take isl_space *space)
 
static __isl_give isl_basic_setrational_universe (__isl_take isl_space *space)
 
static __isl_give isl_basic_setfarkas (__isl_take isl_basic_set *bset, int shift)
 
static __isl_give isl_basic_setisl_basic_set_coefficients_base (__isl_take isl_basic_set *bset)
 
static __isl_give isl_matpeek_inv (__isl_keep isl_morph *morph)
 
static __isl_give isl_matget_inv (__isl_keep isl_morph *morph)
 
static isl_stat isl_coefficients_product_data_init (isl_ctx *ctx, struct isl_coefficients_product_data *data, int n)
 
static void isl_coefficients_product_data_clear (struct isl_coefficients_product_data *data)
 
static int is_ray (__isl_keep isl_basic_set *bset, int ineq)
 
static isl_bool isl_basic_set_coefficients_factor (__isl_keep isl_basic_set *bset, void *user)
 
static void clear_entry (isl_int *entry, int total)
 
static void set_factor (isl_int *entry, isl_int *src, struct isl_coefficients_factor_data *data)
 
static void scale_factor (isl_int *entry, isl_int *src, isl_int f, struct isl_coefficients_factor_data *data)
 
static __isl_give isl_basic_setadd_lines (__isl_take isl_basic_set *bset, struct isl_coefficients_factor_data *factor, int total)
 
static __isl_give isl_basic_setadd_rays (__isl_take isl_basic_set *bset, struct isl_coefficients_factor_data *data, int total)
 
static int factor_first_vertex (struct isl_coefficients_factor_data *factor, int start)
 
static void first_vertex (struct isl_coefficients_product_data *data, int first)
 
static int next_vertex (struct isl_coefficients_product_data *data)
 
static __isl_give isl_basic_setadd_vertex (__isl_take isl_basic_set *bset, struct isl_coefficients_product_data *data)
 
static __isl_give isl_basic_setconstruct_product (isl_ctx *ctx, struct isl_coefficients_product_data *data)
 
static __isl_give isl_basic_setisl_basic_set_coefficients_product (__isl_take isl_factorizer *f)
 
static __isl_give isl_basic_setisl_basic_set_coefficients_morphed_product (__isl_take isl_factorizer *f)
 
static __isl_give isl_basic_setbasic_set_coefficients (__isl_take isl_basic_set *bset)
 
__isl_give isl_basic_setisl_basic_set_coefficients (__isl_take isl_basic_set *bset)
 
__isl_give isl_basic_setisl_basic_set_solutions (__isl_take isl_basic_set *bset)
 
__isl_give isl_basic_setisl_set_coefficients (__isl_take isl_set *set)
 
static __isl_give isl_basic_setcoefficients_wrap (__isl_take isl_basic_set *bset, void *user)
 
__isl_give isl_basic_set_listisl_basic_set_list_coefficients (__isl_take isl_basic_set_list *list)
 
__isl_give isl_basic_setisl_set_solutions (__isl_take isl_set *set)
 

Function Documentation

◆ add_lines()

static __isl_give isl_basic_set * add_lines ( __isl_take isl_basic_set bset,
struct isl_coefficients_factor_data factor,
int  total 
)
static

◆ add_rays()

static __isl_give isl_basic_set * add_rays ( __isl_take isl_basic_set bset,
struct isl_coefficients_factor_data data,
int  total 
)
static

◆ add_vertex()

static __isl_give isl_basic_set * add_vertex ( __isl_take isl_basic_set bset,
struct isl_coefficients_product_data data 
)
static

◆ basic_set_coefficients()

static __isl_give isl_basic_set * basic_set_coefficients ( __isl_take isl_basic_set bset)
static

◆ clear_entry()

static void clear_entry ( isl_int entry,
int  total 
)
static

Definition at line 464 of file isl_farkas.c.

References isl_seq_clr(), and total().

Referenced by add_lines(), and add_rays().

◆ coefficients_wrap()

static __isl_give isl_basic_set * coefficients_wrap ( __isl_take isl_basic_set bset,
void *  user 
)
static

Definition at line 922 of file isl_farkas.c.

References isl_basic_set_coefficients().

Referenced by isl_basic_set_list_coefficients().

◆ construct_product()

static __isl_give isl_basic_set * construct_product ( isl_ctx ctx,
struct isl_coefficients_product_data data 
)
static

◆ factor_first_vertex()

static int factor_first_vertex ( struct isl_coefficients_factor_data factor,
int  start 
)
static

◆ farkas()

static __isl_give isl_basic_set * farkas ( __isl_take isl_basic_set bset,
int  shift 
)
static

◆ first_vertex()

static void first_vertex ( struct isl_coefficients_product_data data,
int  first 
)
static

◆ get_inv()

static __isl_give isl_mat * get_inv ( __isl_keep isl_morph morph)
static

Definition at line 336 of file isl_farkas.c.

References isl_mat_copy(), and peek_inv().

Referenced by isl_basic_set_coefficients_morphed_product().

◆ is_ray()

static int is_ray ( __isl_keep isl_basic_set bset,
int  ineq 
)
static

Definition at line 414 of file isl_farkas.c.

References isl_int_is_zero.

Referenced by add_rays(), factor_first_vertex(), and isl_basic_set_coefficients_factor().

◆ isl_basic_set_coefficients()

__isl_give isl_basic_set * isl_basic_set_coefficients ( __isl_take isl_basic_set bset)

◆ isl_basic_set_coefficients_base()

static __isl_give isl_basic_set * isl_basic_set_coefficients_base ( __isl_take isl_basic_set bset)
static

Definition at line 321 of file isl_farkas.c.

References farkas().

Referenced by basic_set_coefficients(), and isl_basic_set_coefficients_factor().

◆ isl_basic_set_coefficients_factor()

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

◆ isl_basic_set_coefficients_morphed_product()

static __isl_give isl_basic_set * isl_basic_set_coefficients_morphed_product ( __isl_take isl_factorizer f)
static

◆ isl_basic_set_coefficients_product()

static __isl_give isl_basic_set * isl_basic_set_coefficients_product ( __isl_take isl_factorizer f)
static

◆ isl_basic_set_list_coefficients()

__isl_give isl_basic_set_list * isl_basic_set_list_coefficients ( __isl_take isl_basic_set_list list)

Definition at line 931 of file isl_farkas.c.

References coefficients_wrap().

Referenced by collect_inter_validity(), and collect_intra_validity().

◆ isl_basic_set_solutions()

__isl_give isl_basic_set * isl_basic_set_solutions ( __isl_take isl_basic_set bset)

◆ isl_coefficients_product_data_clear()

static void isl_coefficients_product_data_clear ( struct isl_coefficients_product_data data)
static

◆ isl_coefficients_product_data_init()

static isl_stat isl_coefficients_product_data_init ( isl_ctx ctx,
struct isl_coefficients_product_data data,
int  n 
)
static

◆ isl_set_coefficients()

__isl_give isl_basic_set * isl_set_coefficients ( __isl_take isl_set set)

◆ isl_set_solutions()

__isl_give isl_basic_set * isl_set_solutions ( __isl_take isl_set set)

◆ isl_space_coefficients()

static __isl_give isl_space * isl_space_coefficients ( __isl_take isl_space space)
static

◆ isl_space_prefix()

static __isl_give isl_space * isl_space_prefix ( __isl_take isl_space space,
const char *  prefix 
)
static

◆ isl_space_solutions()

static __isl_give isl_space * isl_space_solutions ( __isl_take isl_space space)
static

◆ isl_space_unprefix()

static __isl_give isl_space * isl_space_unprefix ( __isl_take isl_space space,
enum isl_dim_type  type,
const char *  prefix 
)
static

◆ next_vertex()

static int next_vertex ( struct isl_coefficients_product_data data)
static

◆ peek_inv()

static __isl_give isl_mat * peek_inv ( __isl_keep isl_morph morph)
static

Definition at line 329 of file isl_farkas.c.

Referenced by get_inv(), and isl_basic_set_coefficients_morphed_product().

◆ rational_universe()

static __isl_give isl_basic_set * rational_universe ( __isl_take isl_space space)
static

◆ scale_factor()

static void scale_factor ( isl_int entry,
isl_int src,
isl_int  f,
struct isl_coefficients_factor_data data 
)
static

◆ set_factor()

static void set_factor ( isl_int entry,
isl_int src,
struct isl_coefficients_factor_data data 
)
static