x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x - z \cdot \left(z \cdot \left(y \cdot 4\right)\right)\right) - \left(-t\right) \cdot \left(y \cdot 4\right)
double f(double x, double y, double z, double t) {
double r477796 = x;
double r477797 = r477796 * r477796;
double r477798 = y;
double r477799 = 4.0;
double r477800 = r477798 * r477799;
double r477801 = z;
double r477802 = r477801 * r477801;
double r477803 = t;
double r477804 = r477802 - r477803;
double r477805 = r477800 * r477804;
double r477806 = r477797 - r477805;
return r477806;
}
double f(double x, double y, double z, double t) {
double r477807 = x;
double r477808 = r477807 * r477807;
double r477809 = z;
double r477810 = y;
double r477811 = 4.0;
double r477812 = r477810 * r477811;
double r477813 = r477809 * r477812;
double r477814 = r477809 * r477813;
double r477815 = r477808 - r477814;
double r477816 = t;
double r477817 = -r477816;
double r477818 = r477817 * r477812;
double r477819 = r477815 - r477818;
return r477819;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.1 |
|---|---|
| Target | 6.0 |
| Herbie | 0.1 |
Initial program 6.1
rmApplied sub-neg6.1
Applied distribute-rgt-in6.1
Applied associate--r+6.1
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020003
(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))))