\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{2}{\left(\left(x + 1\right) \cdot x\right) \cdot \left(x - 1\right)}double f(double x) {
double r124835 = 1.0;
double r124836 = x;
double r124837 = r124836 + r124835;
double r124838 = r124835 / r124837;
double r124839 = 2.0;
double r124840 = r124839 / r124836;
double r124841 = r124838 - r124840;
double r124842 = r124836 - r124835;
double r124843 = r124835 / r124842;
double r124844 = r124841 + r124843;
return r124844;
}
double f(double x) {
double r124845 = 2.0;
double r124846 = x;
double r124847 = 1.0;
double r124848 = r124846 + r124847;
double r124849 = r124848 * r124846;
double r124850 = r124846 - r124847;
double r124851 = r124849 * r124850;
double r124852 = r124845 / r124851;
return r124852;
}




Bits error versus x
Results
| Original | 9.6 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 9.6
rmApplied frac-sub25.9
Applied frac-add25.5
Simplified25.9
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2020062 +o rules:numerics
(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))))