\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 r109438 = 1.0;
double r109439 = x;
double r109440 = r109439 + r109438;
double r109441 = r109438 / r109440;
double r109442 = 2.0;
double r109443 = r109442 / r109439;
double r109444 = r109441 - r109443;
double r109445 = r109439 - r109438;
double r109446 = r109438 / r109445;
double r109447 = r109444 + r109446;
return r109447;
}
double f(double x) {
double r109448 = 1.0;
double r109449 = x;
double r109450 = 1.0;
double r109451 = r109449 + r109450;
double r109452 = r109451 * r109449;
double r109453 = r109448 / r109452;
double r109454 = 2.0;
double r109455 = r109449 - r109450;
double r109456 = r109454 / r109455;
double r109457 = r109453 * r109456;
return r109457;
}




Bits error versus x
Results
| Original | 9.8 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.8
rmApplied frac-sub25.8
Applied frac-add25.2
Taylor expanded around 0 0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2019362
(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))))