\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 r161417 = 1.0;
double r161418 = x;
double r161419 = r161418 + r161417;
double r161420 = r161417 / r161419;
double r161421 = 2.0;
double r161422 = r161421 / r161418;
double r161423 = r161420 - r161422;
double r161424 = r161418 - r161417;
double r161425 = r161417 / r161424;
double r161426 = r161423 + r161425;
return r161426;
}
double f(double x) {
double r161427 = 1.0;
double r161428 = x;
double r161429 = 1.0;
double r161430 = r161428 + r161429;
double r161431 = r161430 * r161428;
double r161432 = r161427 / r161431;
double r161433 = 2.0;
double r161434 = r161428 - r161429;
double r161435 = r161433 / r161434;
double r161436 = r161432 * r161435;
return r161436;
}




Bits error versus x
Results
| Original | 9.5 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 9.5
rmApplied frac-sub25.6
Applied frac-add25.4
Simplified25.7
Taylor expanded around 0 0.2
rmApplied *-un-lft-identity0.2
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2019346 +o rules:numerics
(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))))