x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
double f(double x, double y, double z, double t) {
double r565521 = x;
double r565522 = r565521 * r565521;
double r565523 = y;
double r565524 = 4.0;
double r565525 = r565523 * r565524;
double r565526 = z;
double r565527 = r565526 * r565526;
double r565528 = t;
double r565529 = r565527 - r565528;
double r565530 = r565525 * r565529;
double r565531 = r565522 - r565530;
return r565531;
}
double f(double x, double y, double z, double t) {
double r565532 = x;
double r565533 = r565532 * r565532;
double r565534 = y;
double r565535 = 4.0;
double r565536 = r565534 * r565535;
double r565537 = z;
double r565538 = r565537 * r565537;
double r565539 = t;
double r565540 = r565538 - r565539;
double r565541 = r565536 * r565540;
double r565542 = r565533 - r565541;
return r565542;
}




Bits error versus x




Bits error versus y




Bits error versus z




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