\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{1}{\left(x + 1\right) \cdot x} \cdot \frac{2}{x - 1}double f(double x) {
double r110452 = 1.0;
double r110453 = x;
double r110454 = r110453 + r110452;
double r110455 = r110452 / r110454;
double r110456 = 2.0;
double r110457 = r110456 / r110453;
double r110458 = r110455 - r110457;
double r110459 = r110453 - r110452;
double r110460 = r110452 / r110459;
double r110461 = r110458 + r110460;
return r110461;
}
double f(double x) {
double r110462 = 1.0;
double r110463 = x;
double r110464 = 1.0;
double r110465 = r110463 + r110464;
double r110466 = r110465 * r110463;
double r110467 = r110462 / r110466;
double r110468 = 2.0;
double r110469 = r110463 - r110464;
double r110470 = r110468 / r110469;
double r110471 = r110467 * r110470;
return r110471;
}




Bits error versus x
Results
| Original | 9.5 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.5
rmApplied frac-sub25.8
Applied frac-add25.3
Taylor expanded around 0 0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2020056
(FPCore (x)
:name "3frac (problem 3.3.3)"
:precision binary64
:herbie-target
(/ 2 (* x (- (* x x) 1)))
(+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))