\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}2 \cdot \frac{\frac{1}{x}}{\left(x + 1\right) \cdot \left(x - 1\right)}double f(double x) {
double r97497 = 1.0;
double r97498 = x;
double r97499 = r97498 + r97497;
double r97500 = r97497 / r97499;
double r97501 = 2.0;
double r97502 = r97501 / r97498;
double r97503 = r97500 - r97502;
double r97504 = r97498 - r97497;
double r97505 = r97497 / r97504;
double r97506 = r97503 + r97505;
return r97506;
}
double f(double x) {
double r97507 = 2.0;
double r97508 = 1.0;
double r97509 = x;
double r97510 = r97508 / r97509;
double r97511 = 1.0;
double r97512 = r97509 + r97511;
double r97513 = r97509 - r97511;
double r97514 = r97512 * r97513;
double r97515 = r97510 / r97514;
double r97516 = r97507 * r97515;
return r97516;
}




Bits error versus x
Results
| Original | 10.1 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 10.1
rmApplied frac-sub25.9
Applied frac-add25.4
Simplified25.4
Simplified25.4
Taylor expanded around 0 0.3
rmApplied div-inv0.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194 +o rules:numerics
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2.0 (* x (- (* x x) 1.0)))
(+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))