\frac{x - lo}{hi - lo}\sqrt[3]{1 - \frac{x}{lo}} \cdot \sqrt[3]{{\left(\sqrt[3]{1 - \frac{x}{lo}}\right)}^{6}}(FPCore (lo hi x) :precision binary64 (/ (- x lo) (- hi lo)))
(FPCore (lo hi x) :precision binary64 (* (cbrt (- 1.0 (/ x lo))) (cbrt (pow (cbrt (- 1.0 (/ x lo))) 6.0))))
double code(double lo, double hi, double x) {
return (x - lo) / (hi - lo);
}
double code(double lo, double hi, double x) {
return cbrt(1.0 - (x / lo)) * cbrt(pow(cbrt(1.0 - (x / lo)), 6.0));
}



Bits error versus lo



Bits error versus hi



Bits error versus x
Results
Initial program 62.0
Taylor expanded around 0 52.1
Simplified52.1
rmApplied add-cube-cbrt_binary64_79552.1
rmApplied add-cbrt-cube_binary64_79652.1
Simplified52.1
Final simplification52.1
herbie shell --seed 2021024
(FPCore (lo hi x)
:name "(/ (- x lo) (- hi lo))"
:precision binary64
:pre (and (< lo -1e+308) (> hi 1e+308))
(/ (- x lo) (- hi lo)))