\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{1}{\left(x + 1\right) \cdot x} \cdot \frac{2}{x - 1}double f(double x) {
double r79949 = 1.0;
double r79950 = x;
double r79951 = r79950 + r79949;
double r79952 = r79949 / r79951;
double r79953 = 2.0;
double r79954 = r79953 / r79950;
double r79955 = r79952 - r79954;
double r79956 = r79950 - r79949;
double r79957 = r79949 / r79956;
double r79958 = r79955 + r79957;
return r79958;
}
double f(double x) {
double r79959 = 1.0;
double r79960 = x;
double r79961 = 1.0;
double r79962 = r79960 + r79961;
double r79963 = r79962 * r79960;
double r79964 = r79959 / r79963;
double r79965 = 2.0;
double r79966 = r79960 - r79961;
double r79967 = r79965 / r79966;
double r79968 = r79964 * r79967;
return r79968;
}




Bits error versus x
Results
| Original | 9.7 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 9.7
rmApplied frac-sub25.8
Applied frac-add25.3
Taylor expanded around 0 0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2019326
(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))))