\frac{x - lo}{hi - lo}\frac{x}{hi - lo} - \frac{1}{\mathsf{fma}\left(\sqrt{hi}, \frac{\sqrt{hi}}{lo}, -1\right)}double f(double lo, double hi, double x) {
double r30068 = x;
double r30069 = lo;
double r30070 = r30068 - r30069;
double r30071 = hi;
double r30072 = r30071 - r30069;
double r30073 = r30070 / r30072;
return r30073;
}
double f(double lo, double hi, double x) {
double r30074 = x;
double r30075 = hi;
double r30076 = lo;
double r30077 = r30075 - r30076;
double r30078 = r30074 / r30077;
double r30079 = 1.0;
double r30080 = sqrt(r30075);
double r30081 = r30080 / r30076;
double r30082 = -1.0;
double r30083 = fma(r30080, r30081, r30082);
double r30084 = r30079 / r30083;
double r30085 = r30078 - r30084;
return r30085;
}



Bits error versus lo



Bits error versus hi



Bits error versus x
Initial program 62.0
rmApplied div-sub62.0
rmApplied clear-num62.0
Simplified1.0
rmApplied *-un-lft-identity1.0
Applied add-sqr-sqrt1.1
Applied times-frac1.1
Applied fma-neg1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2019322 +o rules:numerics
(FPCore (lo hi x)
:name "(/ (- x lo) (- hi lo))"
:precision binary64
:pre (and (< lo -1e+308) (> hi 1e+308))
(/ (- x lo) (- hi lo)))