48 inline std::ostream &operator<<(std::ostream &os,
SolStat stat)
57 throw std::logic_error(
"Unimplemented SolStat ostream<<");
62 inline bool is_tour_piv(
PivType P)
79 : colstat(std::move(B.colstat)), rowstat(std::move(B.rowstat)) {}
83 colstat = std::move(B.colstat);
84 rowstat = std::move(B.rowstat);
89 bool empty()
const {
return colstat.empty() || rowstat.empty(); }
94 using Ptr = std::unique_ptr<Basis>;
105 : sol_stat(E.sol_stat), value(E.value), sb_base(std::move(E.sb_base))
110 sol_stat = E.sol_stat;
112 sb_base = std::move(E.sb_base);
133 inline std::ostream &operator<<(std::ostream &os,
Estimate::Stat estat)
136 if (estat == Estat::Prune)
143 throw std::logic_error(
"Unimplemented Estimate::Stat ostream<<");
154 double lp_viol = 0.0;
157 inline std::ostream &operator<<(std::ostream &os,
PivType piv)
164 os <<
"Integral subtour";
168 os <<
"Optimal tour";
Non-basic and at upper bound.
Definition: lp_util.hpp:71
SolStat
Enum class for categorizing solution statuses.
Definition: lp_util.hpp:42
BStat
Variable basis statuses.
Definition: lp_util.hpp:68
PivType
Enum class for categorizing lp solutions.
Definition: lp_util.hpp:34
Non-basic and at lower bound.
Definition: lp_util.hpp:69
std::vector< int > rowstat
Row statuses.
Definition: lp_util.hpp:92
A tour with a dual feasible basis in the current lp.
Basis::Ptr sb_base
The basis from the strong branch search.
Definition: lp_util.hpp:130
Solution aborted due to external limit.
Free variable.
Definition: lp_util.hpp:72
Row and column basic statuses corresponding to some LP solution.
Definition: lp_util.hpp:76
bool empty() const
Is the basis empty/invalid.
Definition: lp_util.hpp:89
double value
The objective value estimate.
Definition: lp_util.hpp:124
Basic variable.
Definition: lp_util.hpp:70
std::vector< int > rmatind
Indices of nonzero entries.
Definition: lp_util.hpp:150
std::vector< double > rmatval
Coefficients for indices in rmatind.
Definition: lp_util.hpp:151
Struct for storing info from branching estimates.
Definition: lp_util.hpp:98
constexpr int Babby
A new or reset cut.
Definition: lp_util.hpp:27
The namespace for this project.
Definition: abc_nodesel.hpp:20
std::vector< int > colstat
Column statuses.
Definition: lp_util.hpp:91
constexpr int TourOld
Old cut age at tour dual solution.
Definition: lp_util.hpp:29
constexpr int PivOld
Old cut age at pivot duals.
Definition: lp_util.hpp:28
Simple struct representing sparse matrix row for passing to LP solver.
Definition: lp_util.hpp:149
Stat
Solution statuses from strong branch pivoting.
Definition: lp_util.hpp:118