37 #include "misc_log_ex.h"
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;
66 CHECK_AND_ASSERT_THROW_MES(permutation.size() == v.size(),
"Mismatched vector sizes");
67 apply_permutation(permutation, [&v](
size_t i0,
size_t i1){ std::swap(v[i0], v[i1]); });
#define F(w, k)
Definition: sha512-blocks.c:61