\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{\frac{2}{\mathsf{fma}\left(x, x, x\right)}}{x - 1}double f(double x) {
double r1485707 = 1.0;
double r1485708 = x;
double r1485709 = r1485708 + r1485707;
double r1485710 = r1485707 / r1485709;
double r1485711 = 2.0;
double r1485712 = r1485711 / r1485708;
double r1485713 = r1485710 - r1485712;
double r1485714 = r1485708 - r1485707;
double r1485715 = r1485707 / r1485714;
double r1485716 = r1485713 + r1485715;
return r1485716;
}
double f(double x) {
double r1485717 = 2.0;
double r1485718 = x;
double r1485719 = fma(r1485718, r1485718, r1485718);
double r1485720 = r1485717 / r1485719;
double r1485721 = 1.0;
double r1485722 = r1485718 - r1485721;
double r1485723 = r1485720 / r1485722;
return r1485723;
}




Bits error versus x
| Original | 10.0 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 10.0
rmApplied frac-sub26.2
Applied frac-add25.7
Simplified26.1
Taylor expanded around -inf 0.3
rmApplied associate-/r*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019135 +o rules:numerics
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2 (* x (- (* x x) 1)))
(+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))