1 namespace duds {
namespace general {
8 template <
typename Integer>
10 return i && !(i & (i - 1));
25 template <
typename Integer>
29 "Size must be a power of 2 for this algorithm." 31 std::size_t s =
sizeof(Integer) * 8;
35 i = ((i >> s) & m) | ((i << s) & ~m);
52 constexpr
inline std::uint8_t
ReverseBits(
const std::uint8_t i) {
53 return (i * 0x0202020202ULL & 0x010884422010ULL) % 1023;
constexpr bool IsPowerOf2(Integer i)
Returns true only if the given value is a power of 2.
Integer ReverseBits(Integer i)
Reverses the bits in a given value.