\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{x - 1}}{\left(x + 1\right) \cdot x}double f(double x) {
double r16487081 = 1.0;
double r16487082 = x;
double r16487083 = r16487082 + r16487081;
double r16487084 = r16487081 / r16487083;
double r16487085 = 2.0;
double r16487086 = r16487085 / r16487082;
double r16487087 = r16487084 - r16487086;
double r16487088 = r16487082 - r16487081;
double r16487089 = r16487081 / r16487088;
double r16487090 = r16487087 + r16487089;
return r16487090;
}
double f(double x) {
double r16487091 = 2.0;
double r16487092 = x;
double r16487093 = 1.0;
double r16487094 = r16487092 - r16487093;
double r16487095 = r16487091 / r16487094;
double r16487096 = r16487092 + r16487093;
double r16487097 = r16487096 * r16487092;
double r16487098 = r16487095 / r16487097;
return r16487098;
}




Bits error versus x
Results
| Original | 9.8 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.8
rmApplied +-commutative9.8
rmApplied frac-sub25.8
Applied frac-add25.0
Simplified25.0
Taylor expanded around inf 0.3
rmApplied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019112
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2 (* x (- (* x x) 1)))
(+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))