138 if constexpr (Master_matrix::Option_list::is_z2) {
139 birthToCycle_.clear();
140 birthToCycle_.resize(_matrix()->reducedMatrixR_.get_number_of_columns(), -1);
142 for (
Index i = 0; i < _matrix()->reducedMatrixR_.get_number_of_columns(); i++) {
143 if (_matrix()->reducedMatrixR_.is_zero_column(i)) {
144 birthToCycle_[i] = c;
148 representativeCycles_.clear();
149 representativeCycles_.resize(c);
150 for (
Index i = 0; i < _matrix()->mirrorMatrixU_.get_number_of_columns(); i++) {
151 for (
const auto& entry : _matrix()->mirrorMatrixU_.get_column(i)) {
152 auto idx = birthToCycle_[entry.get_row_index()];
153 if (idx != Master_matrix::template get_null_value<Index>()) {
154 representativeCycles_[idx].push_back(i);
159 birthToCycle_.clear();
160 birthToCycle_.resize(_matrix()->reducedMatrixR_.get_number_of_columns(), -1);
161 for (
Index i = 0; i < _matrix()->reducedMatrixR_.get_number_of_columns(); i++) {
162 if (_matrix()->reducedMatrixR_.is_zero_column(i)) {
163 representativeCycles_.push_back(
Cycle());
164 for (
const auto& entry : _matrix()->mirrorMatrixU_.get_column(i)) {
165 representativeCycles_.back().push_back(entry.get_row_index());
167 if constexpr (std::is_same_v<typename Master_matrix::Column, typename Master_matrix::Matrix_heap_column> ||
168 std::is_same_v<
typename Master_matrix::Column,
169 typename Master_matrix::Matrix_unordered_set_column>)
170 std::sort(representativeCycles_.back().begin(), representativeCycles_.back().end());
171 birthToCycle_[i] = representativeCycles_.size() - 1;