\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 r81199 = 1.0;
double r81200 = x;
double r81201 = r81200 + r81199;
double r81202 = r81199 / r81201;
double r81203 = 2.0;
double r81204 = r81203 / r81200;
double r81205 = r81202 - r81204;
double r81206 = r81200 - r81199;
double r81207 = r81199 / r81206;
double r81208 = r81205 + r81207;
return r81208;
}
double f(double x) {
double r81209 = 1.0;
double r81210 = x;
double r81211 = 1.0;
double r81212 = r81210 + r81211;
double r81213 = r81212 * r81210;
double r81214 = r81209 / r81213;
double r81215 = 2.0;
double r81216 = r81210 - r81211;
double r81217 = r81215 / r81216;
double r81218 = r81214 * r81217;
return r81218;
}




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