|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Scalar action \(\mathbb{F}_2 \times \mathbb{F}_2^{64} \to
\mathbb{F}_2^{64}\) on (bool, uint64_t).
More...
Public Member Functions | |
| constexpr std::uint64_t | operator() (bool s, std::uint64_t v) const noexcept |
Scalar action \(\mathbb{F}_2 \times \mathbb{F}_2^{64} \to
\mathbb{F}_2^{64}\) on (bool, uint64_t).
The scalar side is \(\mathbb{F}_2\) (witnessed on bool under (std::bit_xor, std::bit_and); see :galois). The vector side is std::uint64_t carrying the 64-D vector space \(\mathbb{F}_2^{64}\) under std::bit_xor<uint64_t>. The action is "multiply every bit of @c v by the scalar bit": false·v = 0, true·v = v, which is bitwise AND between the broadcast scalar and the vector — implementable as a branch or as (s ? ~0ull : 0ull) & v.