\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{\left(x + 1\right) \cdot x}}{x - 1}double f(double x) {
double r114299 = 1.0;
double r114300 = x;
double r114301 = r114300 + r114299;
double r114302 = r114299 / r114301;
double r114303 = 2.0;
double r114304 = r114303 / r114300;
double r114305 = r114302 - r114304;
double r114306 = r114300 - r114299;
double r114307 = r114299 / r114306;
double r114308 = r114305 + r114307;
return r114308;
}
double f(double x) {
double r114309 = 2.0;
double r114310 = x;
double r114311 = 1.0;
double r114312 = r114310 + r114311;
double r114313 = r114312 * r114310;
double r114314 = r114309 / r114313;
double r114315 = r114310 - r114311;
double r114316 = r114314 / r114315;
return r114316;
}




Bits error versus x
Results
| Original | 9.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.9
rmApplied frac-sub26.3
Applied frac-add25.8
Taylor expanded around 0 0.3
rmApplied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2020060
(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))))