Polly 22.0.0git
basis_reduction_tab.c File Reference
#include <assert.h>
#include <isl_map_private.h>
#include <isl_seq.h>
#include "isl_tab.h"
#include <isl_int.h>
#include <isl_config.h>
#include "basis_reduction_templ.c"

Go to the source code of this file.

Classes

struct  tab_lp

Macros

#define GBR_LP   struct tab_lp
#define GBR_lp_init(P)
#define GBR_lp_set_obj(lp, obj, dim)
#define GBR_lp_solve(lp)
#define GBR_lp_get_obj_val(lp, F)
#define GBR_lp_delete(lp)
#define GBR_lp_next_row(lp)
#define GBR_lp_add_row(lp, row, dim)
#define GBR_lp_get_alpha(lp, row, alpha)
#define GBR_lp_del_row(lp)
#define GBR_lp_is_fixed(lp)
#define GBR_lp_cut(lp, obj)

Functions

static struct tab_lpinit_lp (struct isl_tab *tab)
static void set_lp_obj (struct tab_lp *lp, isl_int *row, int dim)
static int solve_lp (struct tab_lp *lp)
static void get_obj_val (struct tab_lp *lp, GBR_type *F)
static void delete_lp (struct tab_lp *lp)
static int add_lp_row (struct tab_lp *lp, isl_int *row, int dim)
static void get_alpha (struct tab_lp *lp, int row, GBR_type *alpha)
static int del_lp_row (struct tab_lp *lp) WARN_UNUSED
static int cut_lp_to_hyperplane (struct tab_lp *lp, isl_int *row)
static struct isl_tabgbr_tab (struct isl_tab *tab, struct isl_vec *row)

Macro Definition Documentation

◆ GBR_LP

#define GBR_LP   struct tab_lp

Definition at line 100 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis(), and save_alpha().

◆ GBR_lp_add_row

#define GBR_lp_add_row ( lp,
row,
dim )
Value:
add_lp_row(lp, row, dim)
static int add_lp_row(struct tab_lp *lp, isl_int *row, int dim)

Definition at line 107 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_cut

#define GBR_lp_cut ( lp,
obj )
Value:
static int cut_lp_to_hyperplane(struct tab_lp *lp, isl_int *row)
const char * obj
Definition isl_test.c:3316

Definition at line 111 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_del_row

#define GBR_lp_del_row ( lp)
Value:
static int del_lp_row(struct tab_lp *lp) WARN_UNUSED

Definition at line 109 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_delete

#define GBR_lp_delete ( lp)
Value:
static void delete_lp(struct tab_lp *lp)

Definition at line 105 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_get_alpha

#define GBR_lp_get_alpha ( lp,
row,
alpha )
Value:
get_alpha(lp, row, alpha)
static void get_alpha(struct tab_lp *lp, int row, GBR_type *alpha)

Definition at line 108 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis(), and save_alpha().

◆ GBR_lp_get_obj_val

#define GBR_lp_get_obj_val ( lp,
F )
Value:
static void get_obj_val(struct tab_lp *lp, GBR_type *F)

Definition at line 104 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_init

#define GBR_lp_init ( P)
Value:
static struct tab_lp * init_lp(struct isl_tab *tab)

Definition at line 101 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_is_fixed

#define GBR_lp_is_fixed ( lp)
Value:
(lp)->is_fixed

Definition at line 110 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_next_row

#define GBR_lp_next_row ( lp)
Value:
lp->neq

Definition at line 106 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_set_obj

#define GBR_lp_set_obj ( lp,
obj,
dim )
Value:
set_lp_obj(lp, obj, dim)
static void set_lp_obj(struct tab_lp *lp, isl_int *row, int dim)

Definition at line 102 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

◆ GBR_lp_solve

#define GBR_lp_solve ( lp)
Value:
static int solve_lp(struct tab_lp *lp)

Definition at line 103 of file basis_reduction_tab.c.

Referenced by isl_tab_compute_reduced_basis().

Function Documentation

◆ add_lp_row()

int add_lp_row ( struct tab_lp * lp,
isl_int * row,
int dim )
static

◆ cut_lp_to_hyperplane()

◆ del_lp_row()

int del_lp_row ( struct tab_lp * lp)
static

Definition at line 289 of file basis_reduction_tab.c.

References isl_tab_rollback(), tab_lp::neq, tab_lp::stack, and tab_lp::tab.

◆ delete_lp()

◆ gbr_tab()

struct isl_tab * gbr_tab ( struct isl_tab * tab,
struct isl_vec * row )
static

Definition at line 118 of file basis_reduction_tab.c.

References isl_tab_extend_cons(), isl_tab_free(), isl_tab_product(), and isl_tab::n_var.

Referenced by init_lp().

◆ get_alpha()

void get_alpha ( struct tab_lp * lp,
int row,
GBR_type * alpha )
static

Definition at line 282 of file basis_reduction_tab.c.

References tab_lp::con_offset, isl_tab::dual, isl_vec::el, and tab_lp::tab.

◆ get_obj_val()

void get_obj_val ( struct tab_lp * lp,
GBR_type * F )
static

Definition at line 246 of file basis_reduction_tab.c.

References tab_lp::opt, and tab_lp::opt_denom.

◆ init_lp()

◆ set_lp_obj()

void set_lp_obj ( struct tab_lp * lp,
isl_int * row,
int dim )
static

Definition at line 174 of file basis_reduction_tab.c.

References tab_lp::obj, and tab_lp::row.

◆ solve_lp()