\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 r112859 = 1.0;
double r112860 = x;
double r112861 = r112860 + r112859;
double r112862 = r112859 / r112861;
double r112863 = 2.0;
double r112864 = r112863 / r112860;
double r112865 = r112862 - r112864;
double r112866 = r112860 - r112859;
double r112867 = r112859 / r112866;
double r112868 = r112865 + r112867;
return r112868;
}
double f(double x) {
double r112869 = 1.0;
double r112870 = x;
double r112871 = 1.0;
double r112872 = r112870 + r112871;
double r112873 = r112872 * r112870;
double r112874 = r112869 / r112873;
double r112875 = 2.0;
double r112876 = r112870 - r112871;
double r112877 = r112875 / r112876;
double r112878 = r112874 * r112877;
return r112878;
}




Bits error versus x
Results
| Original | 9.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 9.6
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 2020039
(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))))