\left(3 \cdot \left(2 - x \cdot 3\right)\right) \cdot x
3 \cdot \left(\left(2 - x \cdot 3\right) \cdot x\right)
double f(double x) {
double r450006 = 3.0;
double r450007 = 2.0;
double r450008 = x;
double r450009 = r450008 * r450006;
double r450010 = r450007 - r450009;
double r450011 = r450006 * r450010;
double r450012 = r450011 * r450008;
return r450012;
}
double f(double x) {
double r450013 = 3.0;
double r450014 = 2.0;
double r450015 = x;
double r450016 = r450015 * r450013;
double r450017 = r450014 - r450016;
double r450018 = r450017 * r450015;
double r450019 = r450013 * r450018;
return r450019;
}




Bits error versus x
Results
| Original | 0.3 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.3
rmApplied associate-*l*0.2
Final simplification0.2
herbie shell --seed 2019325 +o rules:numerics
(FPCore (x)
:name "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, E"
:precision binary64
:herbie-target
(- (* 6 x) (* 9 (* x x)))
(* (* 3 (- 2 (* x 3))) x))