\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{1}{\frac{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}{6}}double f(double x) {
double r618997 = 6.0;
double r618998 = x;
double r618999 = 1.0;
double r619000 = r618998 - r618999;
double r619001 = r618997 * r619000;
double r619002 = r618998 + r618999;
double r619003 = 4.0;
double r619004 = sqrt(r618998);
double r619005 = r619003 * r619004;
double r619006 = r619002 + r619005;
double r619007 = r619001 / r619006;
return r619007;
}
double f(double x) {
double r619008 = 1.0;
double r619009 = x;
double r619010 = 1.0;
double r619011 = r619009 + r619010;
double r619012 = 4.0;
double r619013 = sqrt(r619009);
double r619014 = r619012 * r619013;
double r619015 = r619011 + r619014;
double r619016 = r619009 - r619010;
double r619017 = r619015 / r619016;
double r619018 = 6.0;
double r619019 = r619017 / r619018;
double r619020 = r619008 / r619019;
return r619020;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied associate-/l*0.0
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2019212
(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)))))