double f(double x) {
double r10448614 = 1.0;
double r10448615 = x;
double r10448616 = r10448615 + r10448614;
double r10448617 = r10448614 / r10448616;
double r10448618 = 2.0;
double r10448619 = r10448618 / r10448615;
double r10448620 = r10448617 - r10448619;
double r10448621 = r10448615 - r10448614;
double r10448622 = r10448614 / r10448621;
double r10448623 = r10448620 + r10448622;
return r10448623;
}
double f(double x) {
double r10448624 = 2.0;
double r10448625 = x;
double r10448626 = 1.0;
double r10448627 = r10448625 + r10448626;
double r10448628 = r10448627 * r10448625;
double r10448629 = r10448624 / r10448628;
double r10448630 = r10448625 - r10448626;
double r10448631 = r10448629 / r10448630;
return r10448631;
}
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{\left(x + 1\right) \cdot x}}{x - 1}



Bits error versus x
| Original | 9.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.9
rmApplied frac-sub26.0
Applied frac-add25.4
Taylor expanded around inf 0.3
rmApplied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019102
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2 (* x (- (* x x) 1)))
(+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))