Polly 22.0.0git
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()

◆ add_rays()

◆ add_vertex()

◆ basic_set_coefficients()

◆ clear_entry()

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

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

◆ construct_product()

◆ factor_first_vertex()

◆ farkas()

◆ first_vertex()

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

◆ get_inv()

__isl_give isl_mat * get_inv ( __isl_keep isl_morph * morph)
static

Definition at line 336 of file isl_farkas.c.

References __isl_give, __isl_keep, isl_mat_copy(), and peek_inv().

Referenced by isl_basic_set_coefficients_morphed_product().

◆ is_ray()

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

◆ isl_basic_set_coefficients()

◆ isl_basic_set_coefficients_base()

__isl_give isl_basic_set * isl_basic_set_coefficients_base ( __isl_take isl_basic_set * bset)
static

◆ isl_basic_set_coefficients_factor()

◆ isl_basic_set_coefficients_morphed_product()

◆ isl_basic_set_coefficients_product()

◆ isl_basic_set_list_coefficients()

__isl_give isl_basic_set_list * isl_basic_set_list_coefficients ( __isl_take isl_basic_set_list * list)

◆ isl_basic_set_solutions()

◆ isl_coefficients_product_data_clear()

◆ isl_coefficients_product_data_init()

◆ isl_set_coefficients()

◆ isl_set_solutions()

◆ isl_space_coefficients()

◆ isl_space_prefix()

◆ isl_space_solutions()

◆ isl_space_unprefix()

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

◆ next_vertex()

◆ peek_inv()

__isl_give isl_mat * peek_inv ( __isl_keep isl_morph * morph)
static

Definition at line 329 of file isl_farkas.c.

References __isl_give, and __isl_keep.

Referenced by get_inv(), and isl_basic_set_coefficients_morphed_product().

◆ rational_universe()

◆ scale_factor()

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

◆ set_factor()

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