34 Node(
const Matrix& m,
const std::vector<ColIndex>& cols,
const std::set<RowIndex>& ign)
65 std::size_t lbs = 0, ubs = 0;
67 if (entry.value < 0) ++lbs;
70 std::size_t min_j = std::min(lbs, ubs);
75 }
else if (min_j < min_branches) {
89 for (; col_it != col_end; ++col_it) {
90 if (ign_it !=
ignored.end() && *ign_it == col_it.row()) ++ign_it;
91 else if (col_it->value < 0)
eliminators.push_back(col_it.row());
95 for (; col_it != col_end; ++col_it){
96 if (ign_it !=
ignored.end() && *ign_it == col_it.row()) ++ign_it;
97 else if (col_it->value > 0)
eliminators.push_back(col_it.row());
101 for (; col_it != col_end; ++col_it){
col_iterator col_begin(ColIndex c) const
col_view col_entries(const ColIndex ci) const
col_iterator col_end(ColIndex c) const
std::size_t n_rows() const
std::vector< ColIndex > cols_to_elim
void choose_elimination()
Matrix::RowIndex RowIndex
std::vector< RowIndex > eliminators
std::set< RowIndex > ignored
Node(const Matrix &m, const std::vector< ColIndex > &cols)
Node(Matrix &&m, const std::vector< ColIndex > &cols)
Matrix::ColIndex ColIndex
Node(const Matrix &m, const std::vector< ColIndex > &cols, const std::set< RowIndex > &ign)