\left(\frac{1.0}{x + 1.0} - \frac{2.0}{x}\right) + \frac{1.0}{x - 1.0}\frac{2.0}{\left(\left(x + 1.0\right) \cdot x\right) \cdot \left(x - 1.0\right)}double f(double x) {
double r6351741 = 1.0;
double r6351742 = x;
double r6351743 = r6351742 + r6351741;
double r6351744 = r6351741 / r6351743;
double r6351745 = 2.0;
double r6351746 = r6351745 / r6351742;
double r6351747 = r6351744 - r6351746;
double r6351748 = r6351742 - r6351741;
double r6351749 = r6351741 / r6351748;
double r6351750 = r6351747 + r6351749;
return r6351750;
}
double f(double x) {
double r6351751 = 2.0;
double r6351752 = x;
double r6351753 = 1.0;
double r6351754 = r6351752 + r6351753;
double r6351755 = r6351754 * r6351752;
double r6351756 = r6351752 - r6351753;
double r6351757 = r6351755 * r6351756;
double r6351758 = r6351751 / r6351757;
return r6351758;
}




Bits error versus x
Results
| Original | 9.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 9.9
rmApplied frac-sub26.3
Applied frac-add25.7
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019165 +o rules:numerics
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2.0 (* x (- (* x x) 1.0)))
(+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))