\left(x \cdot 3\right) \cdot y - z
\left(3 \cdot \left(x \cdot y\right) - z\right) + \left(\left(-z\right) + z\right)
double f(double x, double y, double z) {
double r542982 = x;
double r542983 = 3.0;
double r542984 = r542982 * r542983;
double r542985 = y;
double r542986 = r542984 * r542985;
double r542987 = z;
double r542988 = r542986 - r542987;
return r542988;
}
double f(double x, double y, double z) {
double r542989 = 3.0;
double r542990 = x;
double r542991 = y;
double r542992 = r542990 * r542991;
double r542993 = r542989 * r542992;
double r542994 = z;
double r542995 = r542993 - r542994;
double r542996 = -r542994;
double r542997 = r542996 + r542994;
double r542998 = r542995 + r542997;
return r542998;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied add-cube-cbrt0.9
Applied prod-diff0.9
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019198 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, B"
:herbie-target
(- (* x (* 3.0 y)) z)
(- (* (* x 3.0) y) z))