\left(x \cdot 3\right) \cdot y - z
\mathsf{fma}\left(3, x \cdot y, -z\right)double f(double x, double y, double z) {
double r733582 = x;
double r733583 = 3.0;
double r733584 = r733582 * r733583;
double r733585 = y;
double r733586 = r733584 * r733585;
double r733587 = z;
double r733588 = r733586 - r733587;
return r733588;
}
double f(double x, double y, double z) {
double r733589 = 3.0;
double r733590 = x;
double r733591 = y;
double r733592 = r733590 * r733591;
double r733593 = z;
double r733594 = -r733593;
double r733595 = fma(r733589, r733592, r733594);
return r733595;
}




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
Taylor expanded around 0 0.1
rmApplied fma-neg0.1
Final simplification0.1
herbie shell --seed 2020036 +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))