x \cdot x - \left(y \cdot 4\right) \cdot z
\mathsf{fma}\left(x, x, -y \cdot \left(4 \cdot z\right)\right)double f(double x, double y, double z) {
double r150097 = x;
double r150098 = r150097 * r150097;
double r150099 = y;
double r150100 = 4.0;
double r150101 = r150099 * r150100;
double r150102 = z;
double r150103 = r150101 * r150102;
double r150104 = r150098 - r150103;
return r150104;
}
double f(double x, double y, double z) {
double r150105 = x;
double r150106 = y;
double r150107 = 4.0;
double r150108 = z;
double r150109 = r150107 * r150108;
double r150110 = r150106 * r150109;
double r150111 = -r150110;
double r150112 = fma(r150105, r150105, r150111);
return r150112;
}



Bits error versus x



Bits error versus y



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