diff options
-rw-r--r-- | hadamard_pt.hpp | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/hadamard_pt.hpp b/hadamard_pt.hpp index a1123d5..4cde211 100644 --- a/hadamard_pt.hpp +++ b/hadamard_pt.hpp @@ -81,33 +81,23 @@ public: Ms[j].tune(m, ε); } - for (unsigned j = 0; j < Ms.size() / 2; j++) { - unsigned k = 2 * j; - if (this->step(k, k + 1, true)) { - std::swap(colors[k], colors[k + 1]); + for (unsigned j = 0; j < Ms.size() - 1; j++) { + if (this->step(j, j + 1, true)) { + std::swap(colors[j], colors[j + 1]); colors.front() = down; colors.back() = up; } - } - - for (unsigned j = 0; j < Ms.size() / 2 - 1; j++) { - unsigned k = 2 * j + 1; - if (this->step(k, k + 1, true)) { - std::swap(colors[k], colors[k + 1]); - colors.front() = down; - colors.back() = up; - } - } - - if (i > n / 2) { - for (unsigned j = 0; j < Ms.size(); j++) { - if (colors[j] == up) { - nu[j]++; - } else if (colors[j] == down) { - nd[j]++; + if (i > n / 2) { + for (unsigned j = 0; j < Ms.size(); j++) { + if (colors[j] == up) { + nu[j]++; + } else if (colors[j] == down) { + nd[j]++; + } } } } + } std::vector<double> f(Ms.size()); |