x + x \cdot x
(x \cdot x + x)_*
double f(double x) {
double r34344387 = x;
double r34344388 = r34344387 * r34344387;
double r34344389 = r34344387 + r34344388;
return r34344389;
}
double f(double x) {
double r34344390 = x;
double r34344391 = fma(r34344390, r34344390, r34344390);
return r34344391;
}




Bits error versus x
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0 |
Initial program 0.0
Simplified0
Final simplification0
herbie shell --seed 2019112 +o rules:numerics
(FPCore (x)
:name "Expression 2, p15"
:pre (<= 0 x 2)
:herbie-target
(* (+ 1.0 x) x)
(+ x (* x x)))