x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -1.45613981804384912 \cdot 10^{278}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -5.31650938160314506 \cdot 10^{-21}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 3.3409790596422747 \cdot 10^{-221}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 7.8490367773301062 \cdot 10^{81}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r201985 = x;
double r201986 = y;
double r201987 = z;
double r201988 = r201986 / r201987;
double r201989 = t;
double r201990 = r201988 * r201989;
double r201991 = r201990 / r201989;
double r201992 = r201985 * r201991;
return r201992;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r201993 = y;
double r201994 = z;
double r201995 = r201993 / r201994;
double r201996 = -1.456139818043849e+278;
bool r201997 = r201995 <= r201996;
double r201998 = x;
double r201999 = r201998 * r201993;
double r202000 = r201999 / r201994;
double r202001 = -5.316509381603145e-21;
bool r202002 = r201995 <= r202001;
double r202003 = r201998 * r201995;
double r202004 = 3.3409790596422747e-221;
bool r202005 = r201995 <= r202004;
double r202006 = 7.849036777330106e+81;
bool r202007 = r201995 <= r202006;
double r202008 = r201994 / r201993;
double r202009 = r201998 / r202008;
double r202010 = r202007 ? r202009 : r202000;
double r202011 = r202005 ? r202000 : r202010;
double r202012 = r202002 ? r202003 : r202011;
double r202013 = r201997 ? r202000 : r202012;
return r202013;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -1.456139818043849e+278 or -5.316509381603145e-21 < (/ y z) < 3.3409790596422747e-221 or 7.849036777330106e+81 < (/ y z) Initial program 18.6
Simplified10.7
rmApplied *-un-lft-identity10.7
Applied add-cube-cbrt11.3
Applied times-frac11.3
Applied associate-*r*4.8
Simplified4.8
rmApplied add-cube-cbrt4.9
Applied cbrt-prod5.0
Taylor expanded around 0 3.9
if -1.456139818043849e+278 < (/ y z) < -5.316509381603145e-21Initial program 10.4
Simplified0.3
if 3.3409790596422747e-221 < (/ y z) < 7.849036777330106e+81Initial program 6.3
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied add-cube-cbrt1.3
Applied times-frac1.3
Applied associate-*r*6.8
Simplified6.8
rmApplied add-cube-cbrt6.9
Applied cbrt-prod7.0
Taylor expanded around 0 10.7
rmApplied associate-/l*0.2
Final simplification2.3
herbie shell --seed 2020020 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
:precision binary64
(* x (/ (* (/ y z) t) t)))