\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 r132467 = 1.0;
double r132468 = x;
double r132469 = r132468 + r132467;
double r132470 = r132467 / r132469;
double r132471 = 2.0;
double r132472 = r132471 / r132468;
double r132473 = r132470 - r132472;
double r132474 = r132468 - r132467;
double r132475 = r132467 / r132474;
double r132476 = r132473 + r132475;
return r132476;
}
double f(double x) {
double r132477 = 1.0;
double r132478 = x;
double r132479 = 1.0;
double r132480 = r132478 + r132479;
double r132481 = r132480 * r132478;
double r132482 = r132477 / r132481;
double r132483 = 2.0;
double r132484 = r132478 - r132479;
double r132485 = r132483 / r132484;
double r132486 = r132482 * r132485;
return r132486;
}




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