5for (std::uint8_t d{}; fg.size() != d; ++d) {
6 BitSet<8>
const field(
static_cast<BitSet<8>::T
>(
8 std::uint8_t(isMaskSet(fg[d], 0xFFull))
9 | (std::uint8_t(isMaskSet(fg[d] >> 8, 0xFFull)) << 1)
10 | (std::uint8_t(isMaskSet(fg[d] >> 16, 0xFFull)) << 2)
11 | (std::uint8_t(isMaskSet(fg[d] >> 24, 0xFFull)) << 3)
12 | (std::uint8_t(isMaskSet(fg[d] >> 32, 0xFFull)) << 4)
13 | (std::uint8_t(isMaskSet(fg[d] >> 40, 0xFFull)) << 5)
14 | (std::uint8_t(isMaskSet(fg[d] >> 48, 0xFFull)) << 6)
15 | (std::uint8_t(isMaskSet(fg[d] >> 56, 0xFFull)) << 7)
20 std::get<0>(misses[thread_id]).emplace_back(i, depth + 2);
21 std::get<1>(misses[thread_id]).push_back(field);
22 std::get<2>(misses[thread_id]).push_back(d + 1);
23 }
else if (field.any()) {
24 std::get<0>(misses[thread_id]).emplace_back(i, depth + 1);
25 std::get<1>(misses[thread_id]).push_back(field);
26 std::get<2>(misses[thread_id]).push_back(d + 1);
30 for (code_t j{}, k{}; 64 != j; j += 8, ++k) {
31 if (!std::as_const(field)[k] && (0xFF & (fg[d] >> j))) {
32 BitSet<8> f(
static_cast<BitSet<8>::T
>(
34 (0x1ull & (fg[d] >> j))
35 | (0x2ull & (fg[d] >> j))
36 | (0x4ull & (fg[d] >> j))
37 | (0x8ull & (fg[d] >> j))
38 | (0x10ull & (fg[d] >> j))
39 | (0x20ull & (fg[d] >> j))
40 | (0x40ull & (fg[d] >> j))
41 | (0x80ull & (fg[d] >> j))
45 std::get<0>(misses[thread_id]).emplace_back(i | (j << 3 * depth), depth);
46 std::get<1>(misses[thread_id]).push_back(f);
47 std::get<2>(misses[thread_id]).push_back(d + 1);