\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 r857321 = x;
double r857322 = r857321 * r857321;
double r857323 = 3.0;
double r857324 = 2.0;
double r857325 = r857321 * r857324;
double r857326 = r857323 - r857325;
double r857327 = r857322 * r857326;
return r857327;
}
double f(double x) {
double r857328 = x;
double r857329 = r857328 * r857328;
double r857330 = 3.0;
double r857331 = 2.0;
double r857332 = 3.0;
double r857333 = pow(r857328, r857332);
double r857334 = r857331 * r857333;
double r857335 = -r857334;
double r857336 = fma(r857329, r857330, r857335);
return r857336;
}




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))))