\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{1}{\left(x - 1\right) \cdot \left(\left(x - 1\right) \cdot \left(x + 1\right)\right)} \cdot \left(\left(x - 1\right) \cdot \frac{2}{x}\right)double f(double x) {
double r5071292 = 1.0;
double r5071293 = x;
double r5071294 = r5071293 + r5071292;
double r5071295 = r5071292 / r5071294;
double r5071296 = 2.0;
double r5071297 = r5071296 / r5071293;
double r5071298 = r5071295 - r5071297;
double r5071299 = r5071293 - r5071292;
double r5071300 = r5071292 / r5071299;
double r5071301 = r5071298 + r5071300;
return r5071301;
}
double f(double x) {
double r5071302 = 1.0;
double r5071303 = x;
double r5071304 = 1.0;
double r5071305 = r5071303 - r5071304;
double r5071306 = r5071303 + r5071304;
double r5071307 = r5071305 * r5071306;
double r5071308 = r5071305 * r5071307;
double r5071309 = r5071302 / r5071308;
double r5071310 = 2.0;
double r5071311 = r5071310 / r5071303;
double r5071312 = r5071305 * r5071311;
double r5071313 = r5071309 * r5071312;
return r5071313;
}




Bits error versus x
Results
| Original | 10.0 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 10.0
rmApplied frac-sub26.2
Applied frac-add25.7
rmApplied flip-+25.7
Applied associate-*l/25.7
Applied associate-*l/25.7
Applied associate-/r/25.7
Simplified25.7
Taylor expanded around 0 2.8
rmApplied *-un-lft-identity2.8
Applied times-frac2.6
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019168
(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))))