8 #include "CoinHelperFunctions.hpp"
41 static inline void *
operator new(
size_t size) {
44 static inline void operator delete(
void *p,
size_t size) {
58 CoinDisjointCopyN(ei, len,
edges);
78 static inline void *
operator new(
size_t size) {
81 static inline void operator delete(
void *p,
size_t size) {
90 const double * elements) :
94 CoinDisjointCopyN(elements, num,
coeffs);
134 const double alpha,
const double beta,
136 const int heurswitchround,
137 const bool do_edge_switch_heur,
const int struct_switch_heur);
143 const double alpha,
const double beta,
145 const int heurswitchround,
146 const bool do_edge_switch_heur,
const int struct_switch_heur,
147 const double minviol,
const int maxnewcuts,
154 int * nodesign,
int * edges_in_tree);
160 int * nodesign,
int * parentnode,
int * parentedge);
166 const bool generate_all_cuts,
167 const double minviol,
175 const double*
x,
const double minviol,
180 const double*
x,
const double minviol,
MC_solution * MC_mst_cutgen(const MC_problem &mc, const double *x, const double *w, const double alpha, const double beta, const MC_EdgeOrdering edge_ordering, const int heurswitchround, const bool do_edge_switch_heur, const int struct_switch_heur, const double minviol, const int maxnewcuts, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows)
bool MC_cycle_cut_equal(const BCP_cut *bc0, const BCP_cut *bc1)
MC_cycle_cut(const int *ei, const int pos, const int len)
pos
position where the operator should be printed when printing the expression
Abstract base class that defines members common to all types of cuts.
MC_explicit_dense_cut(const MC_explicit_dense_cut &)
This is the class from which the user should derive her own algorithmic cuts.
void MC_generate_shortest_path_cycles(const MC_problem &mc, const double *x, const bool generate_all_cuts, const double minviol, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows)
static BCP_MemPool memPool
double ub() const
Return the upper bound on the cut.
MC_explicit_dense_cut(const double ub, const int num, const double *elements)
void MC_kruskal(const MC_problem &mc, const int *edgeorder, const double *x, int *nodesign, int *edges_in_tree)
void pack(BCP_buffer &buf) const
void free(void *p, size_t n)
MC_solution * MC_mst_heur(const MC_problem &mc, const double *x, const double *w, const double alpha, const double beta, const MC_EdgeOrdering edge_ordering, const int heurswitchround, const bool do_edge_switch_heur, const int struct_switch_heur)
void pack(BCP_buffer &buf) const
MC_cycle_cut(const MC_cycle_cut &)
MC_cycle_cut & operator=(const MC_cycle_cut &)
This class describes the message buffer used for all processes of BCP.
static BCP_MemPool memPool
void MC_test_ising_triangles(const int n, const int *cycles, const double *x, const double minviol, BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_row * > &rows)
void fint fint fint real fint real real real real real real real real * w
void MC_test_ising_four_cycles(const int n, const int *cycles, const double *x, const double minviol, BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_row * > &rows)
bool MC_cycle_cut_less(const BCP_cut *bc0, const BCP_cut *bc1)
MC_explicit_dense_cut & operator=(const MC_explicit_dense_cut &)
void fint fint fint real fint real * x
This class holds a row in a compressed form.