136 if constexpr (Master_matrix::Option_list::has_vine_update) {
137 birthToCycle_.clear();
138 birthToCycle_.resize(_matrix()->reducedMatrixR_.get_number_of_columns(), -1);
140 for (
index i = 0; i < _matrix()->reducedMatrixR_.get_number_of_columns(); i++) {
141 if (_matrix()->reducedMatrixR_.is_zero_column(i)) {
142 birthToCycle_[i] = c;
146 representativeCycles_.clear();
147 representativeCycles_.resize(c);
148 for (
index i = 0; i < _matrix()->mirrorMatrixU_.get_number_of_columns(); i++) {
149 for (
const auto& cell : _matrix()->mirrorMatrixU_.get_column(i)) {
150 auto idx = birthToCycle_[cell.get_row_index()];
151 if (idx !=
static_cast<index>(-1)) {
152 representativeCycles_[idx].push_back(i);
157 birthToCycle_.clear();
158 birthToCycle_.resize(_matrix()->reducedMatrixR_.get_number_of_columns(), -1);
159 for (
index i = 0; i < _matrix()->reducedMatrixR_.get_number_of_columns(); i++) {
160 if (_matrix()->reducedMatrixR_.is_zero_column(i)) {
161 representativeCycles_.push_back(
cycle_type());
162 for (
const auto& cell : _matrix()->mirrorMatrixU_.get_column(i)) {
163 representativeCycles_.back().push_back(cell.get_row_index());
165 if constexpr (std::is_same_v<typename Master_matrix::Column_type, typename Master_matrix::Heap_column_type> ||
166 std::is_same_v<
typename Master_matrix::Column_type,
167 typename Master_matrix::Unordered_set_column_type>)
168 std::sort(representativeCycles_.back().begin(), representativeCycles_.back().end());
169 birthToCycle_[i] = representativeCycles_.size() - 1;