\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{\left(x + 1\right) \cdot x}}{x - 1}double f(double x) {
double r119048 = 1.0;
double r119049 = x;
double r119050 = r119049 + r119048;
double r119051 = r119048 / r119050;
double r119052 = 2.0;
double r119053 = r119052 / r119049;
double r119054 = r119051 - r119053;
double r119055 = r119049 - r119048;
double r119056 = r119048 / r119055;
double r119057 = r119054 + r119056;
return r119057;
}
double f(double x) {
double r119058 = 2.0;
double r119059 = x;
double r119060 = 1.0;
double r119061 = r119059 + r119060;
double r119062 = r119061 * r119059;
double r119063 = r119058 / r119062;
double r119064 = r119059 - r119060;
double r119065 = r119063 / r119064;
return r119065;
}




Bits error versus x
Results
| Original | 10.0 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 10.0
rmApplied frac-sub26.2
Applied frac-add25.7
Taylor expanded around 0 0.2
rmApplied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019344
(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))))