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;
    }
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 ) ; double log2m = 1.847320661499000 + 0.240449173481494 * m - 3.651821822250191 / ( 0.750000000000000 + m ) ; return log2m + e ; }
Computes log<sub>2</sub>(x) using a Pade approximation. It is slower than
{@link #log2_c11(double) } but dose not use any extra memory. <br>
The results are generally accurate to an absolute and relative error of
10<sup>-4</sup>, but relative error can get as high as 10<sup>-10</sup>
@param x the input
@return the log base 2 of {@code x}