x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\mathsf{fma}\left(y \cdot 4, t - z \cdot z, x \cdot x\right)double f(double x, double y, double z, double t) {
double r419021 = x;
double r419022 = r419021 * r419021;
double r419023 = y;
double r419024 = 4.0;
double r419025 = r419023 * r419024;
double r419026 = z;
double r419027 = r419026 * r419026;
double r419028 = t;
double r419029 = r419027 - r419028;
double r419030 = r419025 * r419029;
double r419031 = r419022 - r419030;
return r419031;
}
double f(double x, double y, double z, double t) {
double r419032 = y;
double r419033 = 4.0;
double r419034 = r419032 * r419033;
double r419035 = t;
double r419036 = z;
double r419037 = r419036 * r419036;
double r419038 = r419035 - r419037;
double r419039 = x;
double r419040 = r419039 * r419039;
double r419041 = fma(r419034, r419038, r419040);
return r419041;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
| Original | 5.9 |
|---|---|
| Target | 5.9 |
| Herbie | 5.9 |
Initial program 5.9
Simplified5.9
Final simplification5.9
herbie shell --seed 2019235 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rasterific.Shading:$sradialGradientWithFocusShader from Rasterific-0.6.1, B"
:precision binary64
:herbie-target
(- (* x x) (* 4 (* y (- (* z z) t))))
(- (* x x) (* (* y 4) (- (* z z) t))))