46 for (
size_t n = 0; n < permutation.size(); ++n)
47 CHECK_AND_ASSERT_THROW_MES(std::find(permutation.begin(), permutation.end(), n) != permutation.end(),
"Bad permutation");
49 for (
size_t i = 0; i < permutation.size(); ++i)
52 while (i != permutation[current])
54 size_t next = permutation[current];
56 permutation[current] = current;
59 permutation[current] = current;