\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{x - 1}}{\left(x + 1\right) \cdot x}double f(double x) {
double r5660596 = 1.0;
double r5660597 = x;
double r5660598 = r5660597 + r5660596;
double r5660599 = r5660596 / r5660598;
double r5660600 = 2.0;
double r5660601 = r5660600 / r5660597;
double r5660602 = r5660599 - r5660601;
double r5660603 = r5660597 - r5660596;
double r5660604 = r5660596 / r5660603;
double r5660605 = r5660602 + r5660604;
return r5660605;
}
double f(double x) {
double r5660606 = 2.0;
double r5660607 = x;
double r5660608 = 1.0;
double r5660609 = r5660607 - r5660608;
double r5660610 = r5660606 / r5660609;
double r5660611 = r5660607 + r5660608;
double r5660612 = r5660611 * r5660607;
double r5660613 = r5660610 / r5660612;
return r5660613;
}




Bits error versus x
Results
| Original | 10.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 10.1
rmApplied frac-sub26.3
Applied frac-add26.0
Taylor expanded around 0 0.2
rmApplied *-un-lft-identity0.2
Applied times-frac0.1
rmApplied associate-*l/0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019169
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2.0 (* x (- (* x x) 1.0)))
(+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))