x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -8.744938221735624394086083700588160422165 \cdot 10^{247}:\\
\;\;\;\;\frac{1}{\frac{\frac{z}{x}}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le -4.90887845624400356201079550409662195503 \cdot 10^{-234}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 6.890799872238725235555987506188972971533 \cdot 10^{-284} \lor \neg \left(\frac{y}{z} \le 4.844168314129915218649001510512659703992 \cdot 10^{193}\right):\\
\;\;\;\;\frac{x}{z} \cdot y\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\end{array}double f(double x, double y, double z, double t) {
double r74970 = x;
double r74971 = y;
double r74972 = z;
double r74973 = r74971 / r74972;
double r74974 = t;
double r74975 = r74973 * r74974;
double r74976 = r74975 / r74974;
double r74977 = r74970 * r74976;
return r74977;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r74978 = y;
double r74979 = z;
double r74980 = r74978 / r74979;
double r74981 = -8.744938221735624e+247;
bool r74982 = r74980 <= r74981;
double r74983 = 1.0;
double r74984 = x;
double r74985 = r74979 / r74984;
double r74986 = r74985 / r74978;
double r74987 = r74983 / r74986;
double r74988 = -4.9088784562440036e-234;
bool r74989 = r74980 <= r74988;
double r74990 = r74984 * r74980;
double r74991 = 6.890799872238725e-284;
bool r74992 = r74980 <= r74991;
double r74993 = 4.844168314129915e+193;
bool r74994 = r74980 <= r74993;
double r74995 = !r74994;
bool r74996 = r74992 || r74995;
double r74997 = r74984 / r74979;
double r74998 = r74997 * r74978;
double r74999 = r74979 / r74978;
double r75000 = r74984 / r74999;
double r75001 = r74996 ? r74998 : r75000;
double r75002 = r74989 ? r74990 : r75001;
double r75003 = r74982 ? r74987 : r75002;
return r75003;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -8.744938221735624e+247Initial program 47.7
Simplified0.2
rmApplied clear-num0.4
Simplified0.4
if -8.744938221735624e+247 < (/ y z) < -4.9088784562440036e-234Initial program 9.2
Simplified8.7
rmApplied *-un-lft-identity8.7
Applied times-frac0.2
Simplified0.2
if -4.9088784562440036e-234 < (/ y z) < 6.890799872238725e-284 or 4.844168314129915e+193 < (/ y z) Initial program 23.8
Simplified0.7
rmApplied associate-/l*17.2
rmApplied *-un-lft-identity17.2
Applied *-un-lft-identity17.2
Applied times-frac17.2
Applied *-un-lft-identity17.2
Applied times-frac17.2
Simplified17.2
Simplified0.6
if 6.890799872238725e-284 < (/ y z) < 4.844168314129915e+193Initial program 8.4
Simplified9.3
rmApplied associate-/l*0.2
Final simplification0.3
herbie shell --seed 2019195 +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)))