46 for (
size_t n = 0; n < permutation.size(); ++n)
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;
67 apply_permutation(permutation, [&v](
size_t i0,
size_t i1){ std::swap(v[i0], v[i1]); });
#define CHECK_AND_ASSERT_THROW_MES(expr, message)