\left(x \cdot 3\right) \cdot y - z
\mathsf{fma}\left(x, 3 \cdot y, -z\right)double f(double x, double y, double z) {
double r787593 = x;
double r787594 = 3.0;
double r787595 = r787593 * r787594;
double r787596 = y;
double r787597 = r787595 * r787596;
double r787598 = z;
double r787599 = r787597 - r787598;
return r787599;
}
double f(double x, double y, double z) {
double r787600 = x;
double r787601 = 3.0;
double r787602 = y;
double r787603 = r787601 * r787602;
double r787604 = z;
double r787605 = -r787604;
double r787606 = fma(r787600, r787603, r787605);
return r787606;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| 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 2020045 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, B"
:precision binary64
:herbie-target
(- (* x (* 3 y)) z)
(- (* (* x 3) y) z))