x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.3161828153264955 \cdot 10^{+221}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -4.4642773403213894 \cdot 10^{-101}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{elif}\;\frac{y}{z} \le 9.802087804866568 \cdot 10^{-279}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 1.7035288058957 \cdot 10^{+120}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\
\end{array}double f(double x, double y, double z, double t) {
double r4129906 = x;
double r4129907 = y;
double r4129908 = z;
double r4129909 = r4129907 / r4129908;
double r4129910 = t;
double r4129911 = r4129909 * r4129910;
double r4129912 = r4129911 / r4129910;
double r4129913 = r4129906 * r4129912;
return r4129913;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r4129914 = y;
double r4129915 = z;
double r4129916 = r4129914 / r4129915;
double r4129917 = -2.3161828153264955e+221;
bool r4129918 = r4129916 <= r4129917;
double r4129919 = x;
double r4129920 = r4129919 / r4129915;
double r4129921 = r4129914 * r4129920;
double r4129922 = -4.4642773403213894e-101;
bool r4129923 = r4129916 <= r4129922;
double r4129924 = r4129916 * r4129919;
double r4129925 = 9.802087804866568e-279;
bool r4129926 = r4129916 <= r4129925;
double r4129927 = 1.7035288058957e+120;
bool r4129928 = r4129916 <= r4129927;
double r4129929 = r4129915 / r4129919;
double r4129930 = r4129914 / r4129929;
double r4129931 = r4129928 ? r4129924 : r4129930;
double r4129932 = r4129926 ? r4129921 : r4129931;
double r4129933 = r4129923 ? r4129924 : r4129932;
double r4129934 = r4129918 ? r4129921 : r4129933;
return r4129934;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.3161828153264955e+221 or -4.4642773403213894e-101 < (/ y z) < 9.802087804866568e-279Initial program 21.4
Simplified1.6
if -2.3161828153264955e+221 < (/ y z) < -4.4642773403213894e-101 or 9.802087804866568e-279 < (/ y z) < 1.7035288058957e+120Initial program 7.6
Simplified9.6
rmApplied *-un-lft-identity9.6
Applied associate-/r*9.6
Applied associate-*r/9.7
Simplified9.7
rmApplied clear-num10.1
rmApplied *-commutative10.1
Applied associate-/r*0.8
Applied associate-/r/0.3
Simplified0.2
if 1.7035288058957e+120 < (/ y z) Initial program 31.1
Simplified2.6
rmApplied clear-num3.0
Applied un-div-inv2.6
Final simplification1.0
herbie shell --seed 2019158 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))