\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 r98763 = 1.0;
double r98764 = x;
double r98765 = r98764 + r98763;
double r98766 = r98763 / r98765;
double r98767 = 2.0;
double r98768 = r98767 / r98764;
double r98769 = r98766 - r98768;
double r98770 = r98764 - r98763;
double r98771 = r98763 / r98770;
double r98772 = r98769 + r98771;
return r98772;
}
double f(double x) {
double r98773 = 1.0;
double r98774 = x;
double r98775 = 1.0;
double r98776 = r98774 + r98775;
double r98777 = r98776 * r98774;
double r98778 = r98773 / r98777;
double r98779 = 2.0;
double r98780 = r98774 - r98775;
double r98781 = r98779 / r98780;
double r98782 = r98778 * r98781;
return r98782;
}




Bits error versus x
Results
| Original | 9.7 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.7
rmApplied frac-sub25.8
Applied frac-add25.3
Taylor expanded around 0 0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2019326
(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))))