33 using v8 =
typename Logic::v8;
36 explicit Memcmp(
const Logic& l) : l_(l) {}
39 BitW lt(
size_t n,
const v8 A[],
const v8 B[])
const {
40 std::vector<BitW> a(8 * n);
41 std::vector<BitW> b(8 * n);
42 arrange(n, a.data(), A);
43 arrange(n, b.data(), B);
44 return l_.lt(8 * n, a.data(), b.data());
48 BitW leq(
size_t n,
const v8 A[],
const v8 B[])
const {
49 std::vector<BitW> a(8 * n);
50 std::vector<BitW> b(8 * n);
51 arrange(n, a.data(), A);
52 arrange(n, b.data(), B);
53 return l_.leq(8 * n, a.data(), b.data());
57 void arrange(
size_t n, BitW bits[],
const v8 bytes[])
const {
59 for (
size_t i = n; i-- > 0;) {
60 for (
size_t j = 0; j < 8; ++j) {
61 *bits++ = bytes[i][j];