\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}6 \cdot \frac{x - 1}{\mathsf{fma}\left(4, \sqrt{x}, x + 1\right)}double f(double x) {
double r629921 = 6.0;
double r629922 = x;
double r629923 = 1.0;
double r629924 = r629922 - r629923;
double r629925 = r629921 * r629924;
double r629926 = r629922 + r629923;
double r629927 = 4.0;
double r629928 = sqrt(r629922);
double r629929 = r629927 * r629928;
double r629930 = r629926 + r629929;
double r629931 = r629925 / r629930;
return r629931;
}
double f(double x) {
double r629932 = 6.0;
double r629933 = x;
double r629934 = 1.0;
double r629935 = r629933 - r629934;
double r629936 = 4.0;
double r629937 = sqrt(r629933);
double r629938 = r629933 + r629934;
double r629939 = fma(r629936, r629937, r629938);
double r629940 = r629935 / r629939;
double r629941 = r629932 * r629940;
return r629941;
}




Bits error versus x
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.2
Simplified0.0
rmApplied div-inv0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019208 +o rules:numerics
(FPCore (x)
:name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"
:precision binary64
:herbie-target
(/ 6 (/ (+ (+ x 1) (* 4 (sqrt x))) (- x 1)))
(/ (* 6 (- x 1)) (+ (+ x 1) (* 4 (sqrt x)))))