docs: @SuppressWarnings("WeakerAccess")
      public static double approxLog2(double value) {
          final long valueBits = Double.doubleToRawLongBits(value);
          final long exponent = ((valueBits & 0x7ff0_0000_0000_0000L) >>> 52) - 1024;
          final double m = Double.longBitsToDouble((valueBits & 0x800fffffffffffffL) | 0x3ff0000000000000L);
          return (m * (2 - (1.0 / 3) * m) + exponent - (2.0 / 3.0));
      }