x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(\left(4 \cdot y\right) \cdot \left(-t\right) + \left(\left(z \cdot 4\right) \cdot y\right) \cdot z\right)
double f(double x, double y, double z, double t) {
double r570304 = x;
double r570305 = r570304 * r570304;
double r570306 = y;
double r570307 = 4.0;
double r570308 = r570306 * r570307;
double r570309 = z;
double r570310 = r570309 * r570309;
double r570311 = t;
double r570312 = r570310 - r570311;
double r570313 = r570308 * r570312;
double r570314 = r570305 - r570313;
return r570314;
}
double f(double x, double y, double z, double t) {
double r570315 = x;
double r570316 = r570315 * r570315;
double r570317 = 4.0;
double r570318 = y;
double r570319 = r570317 * r570318;
double r570320 = t;
double r570321 = -r570320;
double r570322 = r570319 * r570321;
double r570323 = z;
double r570324 = r570323 * r570317;
double r570325 = r570324 * r570318;
double r570326 = r570325 * r570323;
double r570327 = r570322 + r570326;
double r570328 = r570316 - r570327;
return r570328;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.0 |
|---|---|
| Target | 6.0 |
| Herbie | 0.1 |
Initial program 6.0
rmApplied sub-neg6.0
Applied distribute-lft-in6.0
Simplified6.0
Simplified6.0
Taylor expanded around 0 6.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194
(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))))