double f(double x) {
double r6935921 = x;
double r6935922 = r6935921 * r6935921;
double r6935923 = 1.0;
double r6935924 = r6935922 + r6935923;
double r6935925 = r6935921 / r6935924;
return r6935925;
}
double f(double x) {
double r6935926 = 1.0;
double r6935927 = x;
double r6935928 = r6935926 / r6935927;
double r6935929 = r6935927 + r6935928;
double r6935930 = r6935926 / r6935929;
return r6935930;
}
\frac{x}{x \cdot x + 1}\frac{1}{x + \frac{1}{x}}



Bits error versus x
| Original | 14.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 14.3
rmApplied *-un-lft-identity14.3
Applied associate-/l*14.3
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019101
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))