\left(x \cdot x\right) \cdot \left(3 - x \cdot 2\right)
x \cdot \left(x \cdot 3\right) + \left(-2 \cdot {x}^{3}\right)double f(double x) {
double r823998 = x;
double r823999 = r823998 * r823998;
double r824000 = 3.0;
double r824001 = 2.0;
double r824002 = r823998 * r824001;
double r824003 = r824000 - r824002;
double r824004 = r823999 * r824003;
return r824004;
}
double f(double x) {
double r824005 = x;
double r824006 = 3.0;
double r824007 = r824005 * r824006;
double r824008 = r824005 * r824007;
double r824009 = 2.0;
double r824010 = 3.0;
double r824011 = pow(r824005, r824010);
double r824012 = r824009 * r824011;
double r824013 = -r824012;
double r824014 = r824008 + r824013;
return r824014;
}




Bits error versus x
Results
| 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 associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020060 +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))))