x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\begin{array}{l}
\mathbf{if}\;z \le -1.878607511397568816928379911623255369938 \cdot 10^{151} \lor \neg \left(z \le 2.818024192072389096284543847407685283902 \cdot 10^{114}\right):\\
\;\;\;\;x \cdot x - \left(\left(y \cdot 4\right) \cdot \left(z + \sqrt{t}\right)\right) \cdot \left(z - \sqrt{t}\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r463754 = x;
double r463755 = r463754 * r463754;
double r463756 = y;
double r463757 = 4.0;
double r463758 = r463756 * r463757;
double r463759 = z;
double r463760 = r463759 * r463759;
double r463761 = t;
double r463762 = r463760 - r463761;
double r463763 = r463758 * r463762;
double r463764 = r463755 - r463763;
return r463764;
}
double f(double x, double y, double z, double t) {
double r463765 = z;
double r463766 = -1.8786075113975688e+151;
bool r463767 = r463765 <= r463766;
double r463768 = 2.818024192072389e+114;
bool r463769 = r463765 <= r463768;
double r463770 = !r463769;
bool r463771 = r463767 || r463770;
double r463772 = x;
double r463773 = r463772 * r463772;
double r463774 = y;
double r463775 = 4.0;
double r463776 = r463774 * r463775;
double r463777 = t;
double r463778 = sqrt(r463777);
double r463779 = r463765 + r463778;
double r463780 = r463776 * r463779;
double r463781 = r463765 - r463778;
double r463782 = r463780 * r463781;
double r463783 = r463773 - r463782;
double r463784 = r463765 * r463765;
double r463785 = r463784 - r463777;
double r463786 = r463776 * r463785;
double r463787 = r463773 - r463786;
double r463788 = r463771 ? r463783 : r463787;
return r463788;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 5.9 |
|---|---|
| Target | 5.8 |
| Herbie | 3.7 |
if z < -1.8786075113975688e+151 or 2.818024192072389e+114 < z Initial program 48.6
rmApplied add-sqr-sqrt56.6
Applied difference-of-squares56.6
Applied associate-*r*30.8
if -1.8786075113975688e+151 < z < 2.818024192072389e+114Initial program 0.1
Final simplification3.7
herbie shell --seed 1978988140
(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))))