41 const double SQRTH = 0.70710678118654752440;
44 const double PX1log = 1.01875663804580931796E-4;
45 const double PX2log = 4.97494994976747001425E-1;
46 const double PX3log = 4.70579119878881725854E0;
47 const double PX4log = 1.44989225341610930846E1;
48 const double PX5log = 1.79368678507819816313E1;
49 const double PX6log = 7.70838733755885391666E0;
67 const double QX1log = 1.12873587189167450590E1;
68 const double QX2log = 4.52279145837532221105E1;
69 const double QX3log = 8.29875266912776603211E1;
70 const double QX4log = 7.11544750618563894466E1;
71 const double QX5log = 2.31251620126765340583E1;
91 const double original_x =
x;
105 const double x2 = x*
x;
111 double res = px / qx ;
113 res -= fe * 2.121944400546905827679e-4;
117 res += fe * 0.693359375;
120 res = std::numeric_limits<double>::infinity();
122 res = - std::numeric_limits<double>::quiet_NaN();
167 const float SQRTHF = 0.707106781186547524f;
174 const float original_x =
x;
182 const float x2 = x*
x;
187 res += -2.12194440e-4
f * fe;
192 res += 0.693359375f * fe;
195 res = std::numeric_limits<float>::infinity();
197 res = -std::numeric_limits<float>::quiet_NaN();
double get_log_px(const double x)
double get_log_qx(const double x)
const float LOGF_LOWER_LIMIT
const double LOG_UPPER_LIMIT
static const double x2[5]
float getMantExponentf(const float x, float &fe)
Like frexp but vectorising and the exponent is a float.
float get_log_poly(const float x)
double fast_log(double x)
const double LOG_LOWER_LIMIT
const float LOGF_UPPER_LIMIT
double getMantExponent(const double x, double &fe)
Like frexp but vectorising and the exponent is a double.