1 #ifndef CMR_CUT_STRUCTS_H 2 #define CMR_CUT_STRUCTS_H 18 ex_blossom(std::vector<int> &_handle,
int _cut_edge,
double _val) :
19 handle(_handle), cut_edge(_cut_edge), cut_val(_val){}
21 std::vector<int> handle;
31 ToothBody(
int _start,
int _end,
double _slack) :
32 Segment(_start, _end), slack(_slack) {}
40 SimpleTooth(
int _root,
int _body_start,
int _body_end,
double _slack) :
41 root(_root), body_start(_body_start), body_end(_body_end),
45 root(_root), body_start(seg.
start), body_end(seg.
end), slack(_slack) {}
47 using Ptr = std::unique_ptr<SimpleTooth>;
49 int root, body_start, body_end;
61 if (body_start == root + 1)
63 if (body_end + 1 == root)
68 int body_size()
const {
return body_end - body_start + 1; }
69 bool body_contains(
int i)
const {
return body_start <= i && i <= body_end; }
71 return root == T.root &&
72 T.body_start <= body_start &&
73 body_end <= T.body_end;
87 std::vector<int> &_degree_nodes,
88 std::vector<std::pair<int, int>> &_nonneg_edges) :
89 used_teeth(_used_teeth), degree_nodes(_degree_nodes),
90 nonneg_edges(_nonneg_edges) {}
std::vector< int > degree_nodes
The handle of the inequality, nodes where the degree eqns are used.
Definition: cut_structs.hpp:96
Structure for storing simple DP inequalities.
Definition: cut_structs.hpp:84
Representing bodies of simple tooth inequalities with associated slack.
Definition: cut_structs.hpp:29
int end
The end index of the Segment.
Definition: util.hpp:235
std::vector< std::pair< int, int > > nonneg_edges
Edges for which is used.
Definition: cut_structs.hpp:99
Utility functions, macros, and structures.
Representing simple tooth inequalities.
Definition: cut_structs.hpp:39
std::vector< SimpleTooth > used_teeth
Simple tooth inequalities to be aggregated to get the simple DP ineq.
Definition: cut_structs.hpp:93
The namespace for this project.
Definition: abc_nodesel.hpp:20
Structure for storing blossom inequalities from exact primal separation.
Definition: cut_structs.hpp:17
Simple utility struct for storing an interval of nodes.
Definition: util.hpp:198
int start
The start index of the Segment.
Definition: util.hpp:234