\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{x}}{\left(x - 1\right) \cdot \left(x + 1\right)}double f(double x) {
double r92374 = 1.0;
double r92375 = x;
double r92376 = r92375 + r92374;
double r92377 = r92374 / r92376;
double r92378 = 2.0;
double r92379 = r92378 / r92375;
double r92380 = r92377 - r92379;
double r92381 = r92375 - r92374;
double r92382 = r92374 / r92381;
double r92383 = r92380 + r92382;
return r92383;
}
double f(double x) {
double r92384 = 2.0;
double r92385 = x;
double r92386 = r92384 / r92385;
double r92387 = 1.0;
double r92388 = r92385 - r92387;
double r92389 = r92385 + r92387;
double r92390 = r92388 * r92389;
double r92391 = r92386 / r92390;
return r92391;
}




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