Polly 20.0.0git
|
#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 |
#define TYPE isl_pw_aff |
#define TYPE isl_pw_multi_aff |
#define TYPE isl_multi_pw_aff |
#define TYPE isl_union_pw_aff |
|
static |
Definition at line 108 of file isl_ilp.c.
References f, isl_basic_set_alloc_inequality(), isl_basic_set_dim(), isl_basic_set_extend_constraints(), isl_basic_set_free(), isl_dim_all, isl_int_add, isl_int_sub, isl_seq_cpy(), isl_seq_neg(), and total().
Referenced by solve_ilp_search().
|
static |
Definition at line 346 of file isl_ilp.c.
References isl_basic_set_copy(), isl_basic_set_free(), isl_basic_set_solve_ilp(), isl_basic_set_underlying_set(), isl_lp_error, obj, and res.
Referenced by isl_basic_set_opt().
|
static |
Definition at line 509 of file isl_ilp.c.
References isl_vec::ctx, isl_int_set_si, isl_lp_empty, isl_lp_error, isl_lp_ok, isl_val_free(), isl_val_get_ctx(), isl_val_infty(), isl_val_nan(), isl_val_neginfty(), and isl_val_normalize().
Referenced by isl_basic_set_opt_val(), and isl_set_opt_val().
|
static |
Definition at line 85 of file isl_ilp.c.
References f, isl_basic_set_copy(), isl_basic_set_free(), isl_basic_set_sample_vec(), isl_basic_set_solve_lp(), isl_lp_ok, isl_vec_ceil(), res, and unit_box_base_points().
Referenced by solve_ilp().
__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 pos().
Referenced by isl::basic_set::dim_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_basic_set_opt_val(), and obj.
Referenced by compute_size_in_direction(), and test_min_special2().
enum isl_lp_result isl_basic_set_opt | ( | __isl_keep isl_basic_set * | bset, |
int | max, | ||
__isl_keep isl_aff * | obj, | ||
isl_int * | opt | ||
) |
Definition at line 360 of file isl_ilp.c.
References basic_set_opt(), isl_vec::ctx, isl_aff_copy(), isl_aff_dim(), isl_aff_expand_divs(), isl_aff_free(), isl_aff_get_ctx(), isl_alloc_array, isl_basic_set_copy(), isl_basic_set_dim(), isl_basic_set_expand_divs(), isl_basic_set_free(), isl_basic_set_get_divs(), isl_die, isl_dim_div, isl_error_invalid, isl_error_unsupported, isl_int_is_one, isl_lp_error, isl_mat_copy(), isl_mat_free(), isl_merge_divs(), isl_space_is_equal(), obj, and res.
Referenced by isl_basic_set_opt_val(), and isl_set_opt_aligned().
__isl_give isl_val * isl_basic_set_opt_val | ( | __isl_keep isl_basic_set * | bset, |
int | max, | ||
__isl_keep isl_aff * | obj | ||
) |
Definition at line 538 of file isl_ilp.c.
References convert_lp_result(), isl_vec::ctx, isl_aff_get_ctx(), isl_basic_set_opt(), isl_val_alloc(), obj, and res.
Referenced by isl_basic_set_max_val().
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 | ||
) |
Definition at line 311 of file isl_ilp.c.
References f, isl_basic_set_check_no_params(), isl_basic_set_dim(), isl_basic_set_plain_is_empty(), isl_dim_all, isl_int_neg, isl_lp_empty, isl_lp_error, isl_seq_neg(), res, solve_ilp(), and solve_ilp_with_eq().
Referenced by basic_set_opt(), main(), opt_at(), and solve_ilp_with_eq().
__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_multi_union_pw_aff_opt_multi_val(), and mupa.
__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_multi_union_pw_aff_opt_multi_val(), and mupa.
|
static |
Definition at line 772 of file isl_ilp.c.
References isl_union_pw_aff_opt_val(), isl_union_pw_aff_opt_data::max, mupa, and n.
Referenced by isl_multi_union_pw_aff_max_multi_val(), isl_multi_union_pw_aff_min_multi_val(), and isl_union_set_opt_multi_union_pw_aff().
|
static |
Definition at line 685 of file isl_ilp.c.
References isl_pw_aff_foreach_piece(), isl_pw_aff_free(), isl_pw_aff_get_ctx(), isl_val_free(), isl_val_nan(), isl_pw_aff_opt_data::max, piece_opt(), and isl_pw_aff_opt_data::res.
Referenced by FN(), and pw_aff_opt().
__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.
Referenced by isl::set::dim_max_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.
Referenced by isl::set::dim_min_val().
__isl_give isl_val * isl_set_max_val | ( | __isl_keep isl_set * | set, |
__isl_keep isl_aff * | obj | ||
) |
Definition at line 612 of file isl_ilp.c.
References isl_set_opt_val(), obj, and set.
Referenced by compute_size(), isl::set::max_val(), and update_unrolling_lower_bound().
__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_set_opt_val(), obj, and set.
Referenced by isl::set::min_val(), steal_from_cst(), and test_min_special().
enum isl_lp_result isl_set_opt | ( | __isl_keep isl_set * | set, |
int | max, | ||
__isl_keep isl_aff * | obj, | ||
isl_int * | opt | ||
) |
Definition at line 471 of file isl_ilp.c.
References isl_aff_align_params(), isl_aff_copy(), isl_aff_free(), isl_aff_get_domain_space(), isl_lp_error, isl_set_align_params(), isl_set_copy(), isl_set_free(), isl_set_get_space(), isl_set_opt_aligned(), isl_set_space_has_equal_params(), obj, res, and set.
Referenced by isl_set_opt_val().
|
static |
Definition at line 429 of file isl_ilp.c.
References isl_basic_set_opt(), isl_int_clear, isl_int_gt, isl_int_init, isl_int_lt, isl_int_set, isl_lp_empty, isl_lp_error, isl_lp_ok, isl_lp_unbounded, obj, res, and set.
Referenced by isl_set_opt().
__isl_give isl_val * isl_set_opt_val | ( | __isl_keep isl_set * | set, |
int | max, | ||
__isl_keep isl_aff * | obj | ||
) |
Definition at line 576 of file isl_ilp.c.
References convert_lp_result(), isl_vec::ctx, isl_aff_get_ctx(), isl_set_opt(), isl_val_alloc(), obj, res, and set.
Referenced by isl_set_max_val(), isl_set_min_val(), and piece_opt().
|
static |
Definition at line 746 of file isl_ilp.c.
References isl_union_pw_aff_foreach_pw_aff(), isl_union_pw_aff_free(), isl_union_pw_aff_get_ctx(), isl_val_free(), isl_val_nan(), isl_union_pw_aff_opt_data::max, pw_aff_opt(), and isl_union_pw_aff_opt_data::res.
Referenced by isl_multi_union_pw_aff_opt_multi_val().
__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 | ||
) |
Definition at line 826 of file isl_ilp.c.
References isl_union_set_opt_multi_union_pw_aff(), and obj.
|
static |
Definition at line 808 of file isl_ilp.c.
References isl_multi_union_pw_aff_intersect_domain(), isl_multi_union_pw_aff_opt_multi_val(), isl_union_set_copy(), isl_union_pw_aff_opt_data::max, and obj.
Referenced by isl_union_set_min_multi_union_pw_aff().
|
static |
Definition at line 659 of file isl_ilp.c.
References aff, isl_aff_free(), isl_set_free(), isl_set_opt_val(), isl_stat_error, isl_stat_ok, isl_pw_aff_opt_data::max, isl_pw_aff_opt_data::res, set, user, and val_opt().
Referenced by isl_pw_aff_opt_val().
|
static |
Definition at line 723 of file isl_ilp.c.
References isl_pw_aff_opt_val(), isl_stat_error, isl_stat_ok, isl_union_pw_aff_opt_data::max, isl_union_pw_aff_opt_data::res, user, and val_opt().
Referenced by isl_union_pw_aff_opt_val().
|
static |
Definition at line 212 of file isl_ilp.c.
References isl_vec::el, f, initial_solution(), isl_basic_set_solve_lp(), isl_int_clear, isl_int_init, isl_int_is_one, isl_int_set, isl_int_sub_ui, isl_lp_empty, isl_lp_error, isl_lp_ok, isl_lp_unbounded, isl_seq_inner_product(), isl_vec_free(), res, isl_vec::size, and solve_ilp_search().
Referenced by isl_basic_set_solve_ilp().
|
static |
Definition at line 153 of file isl_ilp.c.
References add_bounds(), f, isl_basic_set_copy(), isl_basic_set_sample_vec(), isl_int_add, isl_int_add_ui, isl_int_clear, isl_int_fdiv_q_ui, isl_int_init, isl_int_le, isl_int_set, isl_int_sub, isl_int_sub_ui, isl_seq_inner_product(), isl_vec_free(), and isl_vec::size.
Referenced by solve_ilp().
|
static |
Definition at line 267 of file isl_ilp.c.
References isl_vec::el, f, isl_basic_set_copy(), isl_basic_set_dim(), isl_basic_set_free(), isl_basic_set_remove_equalities(), isl_basic_set_solve_ilp(), isl_dim_all, isl_lp_error, isl_lp_ok, isl_mat_copy(), isl_mat_free(), isl_mat_vec_product(), isl_seq_cpy(), isl_vec_alloc(), isl_vec_free(), isl_vec_mat_product(), and res.
Referenced by isl_basic_set_solve_ilp().
|
static |
Definition at line 34 of file isl_ilp.c.
References isl_basic_set_alloc_inequality(), isl_basic_set_alloc_space(), isl_basic_set_dim(), isl_basic_set_empty(), isl_basic_set_free(), isl_basic_set_get_space(), isl_dim_all, isl_int_add, isl_int_is_nonneg, isl_seq_cpy(), and total().
Referenced by initial_solution().
|
static |
Definition at line 622 of file isl_ilp.c.
References isl_val_free(), isl_val_is_nan(), isl_val_max(), and isl_val_min().
Referenced by piece_opt(), and pw_aff_opt().