x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(z \cdot \left(z \cdot \left(y \cdot 4\right)\right) + \left(-t\right) \cdot \left(y \cdot 4\right)\right)
double f(double x, double y, double z, double t) {
double r542155 = x;
double r542156 = r542155 * r542155;
double r542157 = y;
double r542158 = 4.0;
double r542159 = r542157 * r542158;
double r542160 = z;
double r542161 = r542160 * r542160;
double r542162 = t;
double r542163 = r542161 - r542162;
double r542164 = r542159 * r542163;
double r542165 = r542156 - r542164;
return r542165;
}
double f(double x, double y, double z, double t) {
double r542166 = x;
double r542167 = r542166 * r542166;
double r542168 = z;
double r542169 = y;
double r542170 = 4.0;
double r542171 = r542169 * r542170;
double r542172 = r542168 * r542171;
double r542173 = r542168 * r542172;
double r542174 = t;
double r542175 = -r542174;
double r542176 = r542175 * r542171;
double r542177 = r542173 + r542176;
double r542178 = r542167 - r542177;
return r542178;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.3 |
|---|---|
| Target | 6.3 |
| Herbie | 0.1 |
Initial program 6.3
rmApplied sub-neg6.3
Applied distribute-lft-in6.3
Simplified6.3
Simplified6.3
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019305
(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))))