Polly 22.0.0git
isl_ilp.c File Reference
#include <isl_ctx_private.h>
#include <isl_map_private.h>
#include <isl/ilp.h>
#include <isl/union_set.h>
#include "isl_sample.h"
#include <isl_seq.h>
#include "isl_equalities.h"
#include <isl_aff_private.h>
#include <isl_local_space_private.h>
#include <isl_mat_private.h>
#include <isl_val_private.h>
#include <isl_vec_private.h>
#include <isl_lp_private.h>
#include <isl_ilp_private.h>
#include "isl_ilp_opt_fn_val_templ.c"
#include "isl_ilp_opt_multi_val_templ.c"
#include "isl_ilp_opt_val_templ.c"

Go to the source code of this file.

Classes

struct  isl_pw_aff_opt_data
struct  isl_union_pw_aff_opt_data

Macros

#define TYPE   isl_pw_aff
#define TYPE   isl_pw_multi_aff
#define TYPE   isl_multi_pw_aff
#define TYPE   isl_union_pw_aff
#define BASE   basic_set
#define BASE   set

Functions

static __isl_give isl_basic_setunit_box_base_points (__isl_take isl_basic_set *bset)
static __isl_give isl_vecinitial_solution (__isl_keep isl_basic_set *bset, isl_int *f)
static __isl_give isl_basic_setadd_bounds (__isl_take isl_basic_set *bset, isl_int *f, isl_int l, isl_int u)
static __isl_give isl_vecsolve_ilp_search (__isl_keep isl_basic_set *bset, isl_int *f, isl_int *opt, __isl_take isl_vec *sol, isl_int l, isl_int u)
static enum isl_lp_result solve_ilp (__isl_keep isl_basic_set *bset, isl_int *f, isl_int *opt, __isl_give isl_vec **sol_p)
static enum isl_lp_result solve_ilp_with_eq (__isl_keep isl_basic_set *bset, int max, isl_int *f, isl_int *opt, __isl_give isl_vec **sol_p)
enum isl_lp_result isl_basic_set_solve_ilp (__isl_keep isl_basic_set *bset, int max, isl_int *f, isl_int *opt, __isl_give isl_vec **sol_p)
static enum isl_lp_result basic_set_opt (__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj, isl_int *opt)
enum isl_lp_result isl_basic_set_opt (__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj, isl_int *opt)
static enum isl_lp_result isl_set_opt_aligned (__isl_keep isl_set *set, int max, __isl_keep isl_aff *obj, isl_int *opt)
enum isl_lp_result isl_set_opt (__isl_keep isl_set *set, int max, __isl_keep isl_aff *obj, isl_int *opt)
static __isl_give isl_valconvert_lp_result (enum isl_lp_result lp_res, __isl_take isl_val *v, int max)
__isl_give isl_valisl_basic_set_opt_val (__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj)
__isl_give isl_valisl_basic_set_max_val (__isl_keep isl_basic_set *bset, __isl_keep isl_aff *obj)
__isl_give isl_valisl_set_opt_val (__isl_keep isl_set *set, int max, __isl_keep isl_aff *obj)
__isl_give isl_valisl_set_min_val (__isl_keep isl_set *set, __isl_keep isl_aff *obj)
__isl_give isl_valisl_set_max_val (__isl_keep isl_set *set, __isl_keep isl_aff *obj)
static __isl_give isl_valval_opt (__isl_take isl_val *v1, __isl_take isl_val *v2, int max)
static isl_stat piece_opt (__isl_take isl_set *set, __isl_take isl_aff *aff, void *user)
static __isl_give isl_valisl_pw_aff_opt_val (__isl_take isl_pw_aff *pa, int max)
static isl_stat pw_aff_opt (__isl_take isl_pw_aff *pa, void *user)
static __isl_give isl_valisl_union_pw_aff_opt_val (__isl_take isl_union_pw_aff *upa, int max)
static __isl_give isl_multi_valisl_multi_union_pw_aff_opt_multi_val (__isl_take isl_multi_union_pw_aff *mupa, int max)
static __isl_give isl_multi_valisl_union_set_opt_multi_union_pw_aff (__isl_keep isl_union_set *uset, int max, __isl_keep isl_multi_union_pw_aff *obj)
__isl_give isl_multi_valisl_union_set_min_multi_union_pw_aff (__isl_keep isl_union_set *uset, __isl_keep isl_multi_union_pw_aff *obj)
__isl_give isl_multi_valisl_multi_union_pw_aff_min_multi_val (__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_multi_valisl_multi_union_pw_aff_max_multi_val (__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_valisl_basic_set_dim_max_val (__isl_take isl_basic_set *bset, int pos)
__isl_give isl_valisl_set_dim_min_val (__isl_take isl_set *set, int pos)
__isl_give isl_valisl_set_dim_max_val (__isl_take isl_set *set, int pos)

Macro Definition Documentation

◆ BASE [1/2]

#define BASE   basic_set

Definition at line 859 of file isl_ilp.c.

◆ BASE [2/2]

#define BASE   set

Definition at line 859 of file isl_ilp.c.

◆ TYPE [1/4]

#define TYPE   isl_pw_aff

Definition at line 699 of file isl_ilp.c.

◆ TYPE [2/4]

#define TYPE   isl_pw_multi_aff

Definition at line 699 of file isl_ilp.c.

◆ TYPE [3/4]

#define TYPE   isl_multi_pw_aff

Definition at line 699 of file isl_ilp.c.

◆ TYPE [4/4]

#define TYPE   isl_union_pw_aff

Definition at line 699 of file isl_ilp.c.

Function Documentation

◆ add_bounds()

◆ basic_set_opt()

◆ convert_lp_result()

◆ initial_solution()

◆ isl_basic_set_dim_max_val()

__isl_give isl_val * isl_basic_set_dim_max_val ( __isl_take isl_basic_set * bset,
int pos )

Definition at line 868 of file isl_ilp.c.

References __isl_give, __isl_take, isl_basic_set, and pos().

Referenced by isl::basic_set::dim_max_val().

◆ isl_basic_set_max_val()

__isl_give isl_val * isl_basic_set_max_val ( __isl_keep isl_basic_set * bset,
__isl_keep isl_aff * obj )

Definition at line 562 of file isl_ilp.c.

References __isl_give, __isl_keep, isl_basic_set, isl_basic_set_opt_val(), and obj.

Referenced by compute_size_in_direction(), and test_min_special2().

◆ isl_basic_set_opt()

◆ isl_basic_set_opt_val()

◆ isl_basic_set_solve_ilp()

◆ isl_multi_union_pw_aff_max_multi_val()

__isl_give isl_multi_val * isl_multi_union_pw_aff_max_multi_val ( __isl_take isl_multi_union_pw_aff * mupa)

Definition at line 852 of file isl_ilp.c.

References __isl_give, __isl_take, isl_multi_union_pw_aff_opt_multi_val(), and mupa.

◆ isl_multi_union_pw_aff_min_multi_val()

__isl_give isl_multi_val * isl_multi_union_pw_aff_min_multi_val ( __isl_take isl_multi_union_pw_aff * mupa)

Definition at line 839 of file isl_ilp.c.

References __isl_give, __isl_take, isl_multi_union_pw_aff_opt_multi_val(), and mupa.

◆ isl_multi_union_pw_aff_opt_multi_val()

◆ isl_pw_aff_opt_val()

◆ isl_set_dim_max_val()

__isl_give isl_val * isl_set_dim_max_val ( __isl_take isl_set * set,
int pos )

Definition at line 895 of file isl_ilp.c.

References __isl_give, __isl_take, isl_set, pos(), and set.

Referenced by isl::set::dim_max_val().

◆ isl_set_dim_min_val()

__isl_give isl_val * isl_set_dim_min_val ( __isl_take isl_set * set,
int pos )

Definition at line 884 of file isl_ilp.c.

References __isl_give, __isl_take, isl_set, pos(), and set.

Referenced by isl::set::dim_min_val().

◆ isl_set_max_val()

__isl_give isl_val * isl_set_max_val ( __isl_keep isl_set * set,
__isl_keep isl_aff * obj )

◆ isl_set_min_val()

__isl_give isl_val * isl_set_min_val ( __isl_keep isl_set * set,
__isl_keep isl_aff * obj )

Definition at line 600 of file isl_ilp.c.

References __isl_give, __isl_keep, isl_set, isl_set_opt_val(), obj, and set.

Referenced by isl::set::min_val(), steal_from_cst(), and test_min_special().

◆ isl_set_opt()

◆ isl_set_opt_aligned()

enum isl_lp_result isl_set_opt_aligned ( __isl_keep isl_set * set,
int max,
__isl_keep isl_aff * obj,
isl_int * opt )
static

◆ isl_set_opt_val()

◆ isl_union_pw_aff_opt_val()

◆ isl_union_set_min_multi_union_pw_aff()

__isl_give isl_multi_val * isl_union_set_min_multi_union_pw_aff ( __isl_keep isl_union_set * uset,
__isl_keep isl_multi_union_pw_aff * obj )

◆ isl_union_set_opt_multi_union_pw_aff()

◆ piece_opt()

◆ pw_aff_opt()

◆ solve_ilp()

◆ solve_ilp_search()

◆ solve_ilp_with_eq()

◆ unit_box_base_points()

◆ val_opt()

__isl_give isl_val * val_opt ( __isl_take isl_val * v1,
__isl_take isl_val * v2,
int max )
static

Definition at line 622 of file isl_ilp.c.

References __isl_give, __isl_take, isl_val_free(), isl_val_is_nan(), isl_val_max(), and isl_val_min().

Referenced by piece_opt(), and pw_aff_opt().