x \cdot x - \left(y \cdot 4\right) \cdot z
\mathsf{fma}\left(x, x, -\left(y \cdot 4\right) \cdot z\right)double f(double x, double y, double z) {
double r118550 = x;
double r118551 = r118550 * r118550;
double r118552 = y;
double r118553 = 4.0;
double r118554 = r118552 * r118553;
double r118555 = z;
double r118556 = r118554 * r118555;
double r118557 = r118551 - r118556;
return r118557;
}
double f(double x, double y, double z) {
double r118558 = x;
double r118559 = y;
double r118560 = 4.0;
double r118561 = r118559 * r118560;
double r118562 = z;
double r118563 = r118561 * r118562;
double r118564 = -r118563;
double r118565 = fma(r118558, r118558, r118564);
return r118565;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.1
rmApplied fma-neg0.1
Final simplification0.1
herbie shell --seed 2019325 +o rules:numerics
(FPCore (x y z)
:name "Graphics.Rasterific.QuadraticFormula:discriminant from Rasterific-0.6.1"
:precision binary64
(- (* x x) (* (* y 4) z)))