docs: public static double log2_2pd1(double x)
      {
          if(x < 0)
              return Double.NaN;
          long rawBits = doubleToLongBits(x);
          long mantissa = getMantissa(rawBits);
          int e = Math.getExponent(x);
          double m = longBitsToDouble(1023L << 52 | mantissa);//m in [1, 2]
  
          double log2m = 1.847320661499000 + 0.240449173481494 * m - 3.651821822250191 / (0.750000000000000 + m);
  
          return log2m + e;
      }