Polly 20.0.0git
Classes | Macros | Functions
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)   init_lp(P)
 
#define GBR_lp_set_obj(lp, obj, dim)   set_lp_obj(lp, obj, dim)
 
#define GBR_lp_solve(lp)   solve_lp(lp)
 
#define GBR_lp_get_obj_val(lp, F)   get_obj_val(lp, F)
 
#define GBR_lp_delete(lp)   delete_lp(lp)
 
#define GBR_lp_next_row(lp)   lp->neq
 
#define GBR_lp_add_row(lp, row, dim)   add_lp_row(lp, row, dim)
 
#define GBR_lp_get_alpha(lp, row, alpha)   get_alpha(lp, row, alpha)
 
#define GBR_lp_del_row(lp)   del_lp_row(lp)
 
#define GBR_lp_is_fixed(lp)   (lp)->is_fixed
 
#define GBR_lp_cut(lp, obj)   cut_lp_to_hyperplane(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.

◆ GBR_lp_add_row

#define GBR_lp_add_row (   lp,
  row,
  dim 
)    add_lp_row(lp, row, dim)

Definition at line 107 of file basis_reduction_tab.c.

◆ GBR_lp_cut

#define GBR_lp_cut (   lp,
  obj 
)    cut_lp_to_hyperplane(lp, obj)

Definition at line 111 of file basis_reduction_tab.c.

◆ GBR_lp_del_row

#define GBR_lp_del_row (   lp)    del_lp_row(lp)

Definition at line 109 of file basis_reduction_tab.c.

◆ GBR_lp_delete

#define GBR_lp_delete (   lp)    delete_lp(lp)

Definition at line 105 of file basis_reduction_tab.c.

◆ GBR_lp_get_alpha

#define GBR_lp_get_alpha (   lp,
  row,
  alpha 
)    get_alpha(lp, row, alpha)

Definition at line 108 of file basis_reduction_tab.c.

◆ GBR_lp_get_obj_val

#define GBR_lp_get_obj_val (   lp,
 
)    get_obj_val(lp, F)

Definition at line 104 of file basis_reduction_tab.c.

◆ GBR_lp_init

#define GBR_lp_init (   P)    init_lp(P)

Definition at line 101 of file basis_reduction_tab.c.

◆ GBR_lp_is_fixed

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

Definition at line 110 of file basis_reduction_tab.c.

◆ GBR_lp_next_row

#define GBR_lp_next_row (   lp)    lp->neq

Definition at line 106 of file basis_reduction_tab.c.

◆ GBR_lp_set_obj

#define GBR_lp_set_obj (   lp,
  obj,
  dim 
)    set_lp_obj(lp, obj, dim)

Definition at line 102 of file basis_reduction_tab.c.

◆ GBR_lp_solve

#define GBR_lp_solve (   lp)    solve_lp(lp)

Definition at line 103 of file basis_reduction_tab.c.

Function Documentation

◆ add_lp_row()

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

◆ cut_lp_to_hyperplane()

static int cut_lp_to_hyperplane ( struct tab_lp lp,
isl_int row 
)
static

◆ del_lp_row()

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

static void delete_lp ( struct tab_lp lp)
static

◆ gbr_tab()

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

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

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

static struct tab_lp * init_lp ( struct isl_tab tab)
static

◆ set_lp_obj()

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

static int solve_lp ( struct tab_lp lp)
static