x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(\left(\left(y \cdot 4\right) \cdot z\right) \cdot z + \left(y \cdot 4\right) \cdot \left(-t\right)\right)
double f(double x, double y, double z, double t) {
double r519446 = x;
double r519447 = r519446 * r519446;
double r519448 = y;
double r519449 = 4.0;
double r519450 = r519448 * r519449;
double r519451 = z;
double r519452 = r519451 * r519451;
double r519453 = t;
double r519454 = r519452 - r519453;
double r519455 = r519450 * r519454;
double r519456 = r519447 - r519455;
return r519456;
}
double f(double x, double y, double z, double t) {
double r519457 = x;
double r519458 = r519457 * r519457;
double r519459 = y;
double r519460 = 4.0;
double r519461 = r519459 * r519460;
double r519462 = z;
double r519463 = r519461 * r519462;
double r519464 = r519463 * r519462;
double r519465 = t;
double r519466 = -r519465;
double r519467 = r519461 * r519466;
double r519468 = r519464 + r519467;
double r519469 = r519458 - r519468;
return r519469;
}




Bits error versus x




Bits error versus y




Bits error versus z




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