x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x - \left(\left(y \cdot 4\right) \cdot z\right) \cdot z\right) - \left(-t\right) \cdot \left(y \cdot 4\right)
double f(double x, double y, double z, double t) {
double r403737 = x;
double r403738 = r403737 * r403737;
double r403739 = y;
double r403740 = 4.0;
double r403741 = r403739 * r403740;
double r403742 = z;
double r403743 = r403742 * r403742;
double r403744 = t;
double r403745 = r403743 - r403744;
double r403746 = r403741 * r403745;
double r403747 = r403738 - r403746;
return r403747;
}
double f(double x, double y, double z, double t) {
double r403748 = x;
double r403749 = r403748 * r403748;
double r403750 = y;
double r403751 = 4.0;
double r403752 = r403750 * r403751;
double r403753 = z;
double r403754 = r403752 * r403753;
double r403755 = r403754 * r403753;
double r403756 = r403749 - r403755;
double r403757 = t;
double r403758 = -r403757;
double r403759 = r403758 * r403752;
double r403760 = r403756 - r403759;
return r403760;
}




Bits error versus x




Bits error versus y




Bits error versus z




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