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 r436130 = x;
double r436131 = r436130 * r436130;
double r436132 = y;
double r436133 = 4.0;
double r436134 = r436132 * r436133;
double r436135 = z;
double r436136 = r436135 * r436135;
double r436137 = t;
double r436138 = r436136 - r436137;
double r436139 = r436134 * r436138;
double r436140 = r436131 - r436139;
return r436140;
}
double f(double x, double y, double z, double t) {
double r436141 = y;
double r436142 = 4.0;
double r436143 = r436141 * r436142;
double r436144 = t;
double r436145 = z;
double r436146 = r436145 * r436145;
double r436147 = r436144 - r436146;
double r436148 = x;
double r436149 = r436148 * r436148;
double r436150 = fma(r436143, r436147, r436149);
return r436150;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
| Original | 6.1 |
|---|---|
| Target | 6.0 |
| Herbie | 6.1 |
Initial program 6.1
Simplified6.1
Final simplification6.1
herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rasterific.Shading:$sradialGradientWithFocusShader from Rasterific-0.6.1, B"
:herbie-target
(- (* x x) (* 4.0 (* y (- (* z z) t))))
(- (* x x) (* (* y 4.0) (- (* z z) t))))