\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{6}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}double f(double x) {
double r42717537 = 6.0;
double r42717538 = x;
double r42717539 = 1.0;
double r42717540 = r42717538 - r42717539;
double r42717541 = r42717537 * r42717540;
double r42717542 = r42717538 + r42717539;
double r42717543 = 4.0;
double r42717544 = sqrt(r42717538);
double r42717545 = r42717543 * r42717544;
double r42717546 = r42717542 + r42717545;
double r42717547 = r42717541 / r42717546;
return r42717547;
}
double f(double x) {
double r42717548 = 6.0;
double r42717549 = x;
double r42717550 = 1.0;
double r42717551 = r42717549 + r42717550;
double r42717552 = 4.0;
double r42717553 = sqrt(r42717549);
double r42717554 = r42717552 * r42717553;
double r42717555 = r42717551 + r42717554;
double r42717556 = r42717549 - r42717550;
double r42717557 = r42717555 / r42717556;
double r42717558 = r42717548 / r42717557;
return r42717558;
}




Bits error versus x
Results
| Original | 0.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.3
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2019192
(FPCore (x)
:name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"
:herbie-target
(/ 6.0 (/ (+ (+ x 1.0) (* 4.0 (sqrt x))) (- x 1.0)))
(/ (* 6.0 (- x 1.0)) (+ (+ x 1.0) (* 4.0 (sqrt x)))))