\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{6}{\frac{\mathsf{fma}\left(\sqrt{x}, 4, x + 1\right)}{x - 1}}double f(double x) {
double r875981 = 6.0;
double r875982 = x;
double r875983 = 1.0;
double r875984 = r875982 - r875983;
double r875985 = r875981 * r875984;
double r875986 = r875982 + r875983;
double r875987 = 4.0;
double r875988 = sqrt(r875982);
double r875989 = r875987 * r875988;
double r875990 = r875986 + r875989;
double r875991 = r875985 / r875990;
return r875991;
}
double f(double x) {
double r875992 = 6.0;
double r875993 = x;
double r875994 = sqrt(r875993);
double r875995 = 4.0;
double r875996 = 1.0;
double r875997 = r875993 + r875996;
double r875998 = fma(r875994, r875995, r875997);
double r875999 = r875993 - r875996;
double r876000 = r875998 / r875999;
double r876001 = r875992 / r876000;
return r876001;
}




Bits error versus x
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.2
Simplified0.0
Final simplification0.0
herbie shell --seed 2020047 +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)))))