inline constexpr bool is_mersenne_number()

in fatal/math/numerics.h [542:548]


inline constexpr bool is_mersenne_number(T n) noexcept {
  return n == std::numeric_limits<T>::max()
    ? (n & 1) && (
      n == 1 || is_mersenne_number(n >> 1)
    )
    : n != 0 && !(n & (n + 1));
}