15 typedef struct _CProp CProp;
18 #include "containers.h" 32 CProp *
cprop_create(
int cols,
const char integer[],
const double lb[],
const double ub[],
const char **name );
50 int cprop_add_constraint( CProp *cprop,
int nz,
const int idx[],
const double coef[],
char sense,
double rhs,
const char rname[] );
int cprop_n_implications(const CProp *cprop)
returns how many implications the last change produced
void cprop_undo(CProp *cprop)
undo the last bound changed and all its implications
int cprop_cut_nz(const CProp *cprop, int idxCut)
returns the number of variables that appear on cut idxCut
const double * cprop_cut_coef(const CProp *cprop, int idxCut)
returns a vector with all coefficients of cut idxCut
enum IGNType cprop_impl_graph_node_type(const CProp *cprop, int nodeId)
returns the node type
char cprop_feasible(const CProp *cprop)
returns 1 if problem is still feasible, zero otherwise
void cprop_save_impl_graph(const CProp *cprop, const char *fName)
saves the implication graph in the DOT file format (graphviz)
void cprop_free(CProp **cprop)
frees memory of cprop object
double cprop_get_lb(const CProp *cprop, int j)
returns the current lower bound for column j
int cprop_impl_graph_in_d(const CProp *cprop, int nodeId)
number of incident arcs in implication graph node
const int * cprop_cut_idx(const CProp *cprop, int idxCut)
returns a vector with all columns of cut idxCut
char cprop_cut_sense(const CProp *cprop, int idxCut)
returns the sense of cut idxCut
int cprop_implied_var(const CProp *cprop, int i)
returns the i-th variable which bound was implied in the last operation
double cprop_get_ub(const CProp *cprop, int j)
returns the current upper bound for column j
int cprop_update_bound(CProp *cprop, int j, double l, double u)
updates the bounds of a variable
int cprop_impl_graph_node_var(const CProp *cprop, int nodeId)
returns the variable which a node refers
int cprop_impl_graph_node_id(const CProp *cprop, enum IGNType ntype, int col)
returns the node id
CProp * cprop_create(int cols, const char integer[], const double lb[], const double ub[], const char **name)
creates a new CProp object
int cprop_impl_graph_in_neigh(const CProp *cprop, int nodeId, int i)
returns the origin of the i-th incident arc to nodeId
void cprop_set_verbose(CProp *cprop, char verbose)
activates detailed printing of implications as they are discovered
int cprop_n_cuts(const CProp *cprop)
returns the number of cuts found processing the last infeasible solution
int cprop_add_constraint(CProp *cprop, int nz, const int idx[], const double coef[], char sense, double rhs, const char rname[])
adds a new constraint
IGNType
Implication Graph Node Types.
const char * cprop_inf_msg(const CProp *cprop)
message explaining how infeasibility was detected
double cprop_cut_rhs(const CProp *cprop, int idxCut)
returns the right hand side of cut idxCut