\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{x - 1}}{\left(x + 1\right) \cdot x}double f(double x) {
double r5321724 = 1.0;
double r5321725 = x;
double r5321726 = r5321725 + r5321724;
double r5321727 = r5321724 / r5321726;
double r5321728 = 2.0;
double r5321729 = r5321728 / r5321725;
double r5321730 = r5321727 - r5321729;
double r5321731 = r5321725 - r5321724;
double r5321732 = r5321724 / r5321731;
double r5321733 = r5321730 + r5321732;
return r5321733;
}
double f(double x) {
double r5321734 = 2.0;
double r5321735 = x;
double r5321736 = 1.0;
double r5321737 = r5321735 - r5321736;
double r5321738 = r5321734 / r5321737;
double r5321739 = r5321735 + r5321736;
double r5321740 = r5321739 * r5321735;
double r5321741 = r5321738 / r5321740;
return r5321741;
}




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.4
Taylor expanded around 0 0.3
rmApplied add-sqr-sqrt1.0
Applied times-frac0.5
rmApplied associate-*l/0.7
Simplified0.1
Final simplification0.1
herbie shell --seed 2019165
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2 (* x (- (* x x) 1)))
(+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))