\left(x \cdot x\right) \cdot \left(3 - x \cdot 2\right)
\mathsf{fma}\left(x \cdot x, 3, -2 \cdot {x}^{3}\right)double f(double x) {
double r701520 = x;
double r701521 = r701520 * r701520;
double r701522 = 3.0;
double r701523 = 2.0;
double r701524 = r701520 * r701523;
double r701525 = r701522 - r701524;
double r701526 = r701521 * r701525;
return r701526;
}
double f(double x) {
double r701527 = x;
double r701528 = r701527 * r701527;
double r701529 = 3.0;
double r701530 = 2.0;
double r701531 = 3.0;
double r701532 = pow(r701527, r701531);
double r701533 = r701530 * r701532;
double r701534 = -r701533;
double r701535 = fma(r701528, r701529, r701534);
return r701535;
}




Bits error versus x
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Simplified0.1
rmApplied fma-def0.1
Final simplification0.1
herbie shell --seed 2019353 +o rules:numerics
(FPCore (x)
:name "Data.Spline.Key:interpolateKeys from smoothie-0.4.0.2"
:precision binary64
:herbie-target
(* x (* x (- 3 (* x 2))))
(* (* x x) (- 3 (* x 2))))