\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\sqrt{2}}{\left(x + 1\right) \cdot x} \cdot \left(\frac{\sqrt{2}}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)\right)double f(double x) {
double r94658 = 1.0;
double r94659 = x;
double r94660 = r94659 + r94658;
double r94661 = r94658 / r94660;
double r94662 = 2.0;
double r94663 = r94662 / r94659;
double r94664 = r94661 - r94663;
double r94665 = r94659 - r94658;
double r94666 = r94658 / r94665;
double r94667 = r94664 + r94666;
return r94667;
}
double f(double x) {
double r94668 = 2.0;
double r94669 = sqrt(r94668);
double r94670 = x;
double r94671 = 1.0;
double r94672 = r94670 + r94671;
double r94673 = r94672 * r94670;
double r94674 = r94669 / r94673;
double r94675 = r94670 * r94670;
double r94676 = r94671 * r94671;
double r94677 = r94675 - r94676;
double r94678 = r94669 / r94677;
double r94679 = r94678 * r94672;
double r94680 = r94674 * r94679;
return r94680;
}




Bits error versus x
Results
| Original | 9.6 |
|---|---|
| Target | 0.3 |
| Herbie | 0.6 |
Initial program 9.6
rmApplied frac-sub25.7
Applied frac-add25.0
rmApplied flip--25.1
Applied associate-*r/25.1
Applied associate-/r/25.1
Taylor expanded around 0 2.7
rmApplied add-sqr-sqrt3.3
Applied times-frac2.9
Applied associate-*l*0.6
Final simplification0.6
herbie shell --seed 2019304
(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))))