\left(3.0 \cdot \left(2.0 - x \cdot 3.0\right)\right) \cdot x
\left(\left(2.0 - 3.0 \cdot x\right) \cdot x\right) \cdot 3.0
double f(double x) {
double r31835904 = 3.0;
double r31835905 = 2.0;
double r31835906 = x;
double r31835907 = r31835906 * r31835904;
double r31835908 = r31835905 - r31835907;
double r31835909 = r31835904 * r31835908;
double r31835910 = r31835909 * r31835906;
return r31835910;
}
double f(double x) {
double r31835911 = 2.0;
double r31835912 = 3.0;
double r31835913 = x;
double r31835914 = r31835912 * r31835913;
double r31835915 = r31835911 - r31835914;
double r31835916 = r31835915 * r31835913;
double r31835917 = r31835916 * r31835912;
return r31835917;
}




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