x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.706838063418328339106128316591856551082 \cdot 10^{142}:\\
\;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\
\mathbf{elif}\;\frac{y}{z} \le -1.087083851259825961859875176518064978709 \cdot 10^{-304}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 9.3826692587093193488764669780614891357 \cdot 10^{-317}:\\
\;\;\;\;1 \cdot \frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 4.049363857486470326376783704360767916797 \cdot 10^{289}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r84007 = x;
double r84008 = y;
double r84009 = z;
double r84010 = r84008 / r84009;
double r84011 = t;
double r84012 = r84010 * r84011;
double r84013 = r84012 / r84011;
double r84014 = r84007 * r84013;
return r84014;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r84015 = y;
double r84016 = z;
double r84017 = r84015 / r84016;
double r84018 = -2.7068380634183283e+142;
bool r84019 = r84017 <= r84018;
double r84020 = 1.0;
double r84021 = x;
double r84022 = r84021 * r84015;
double r84023 = r84020 / r84016;
double r84024 = r84022 * r84023;
double r84025 = r84020 * r84024;
double r84026 = -1.087083851259826e-304;
bool r84027 = r84017 <= r84026;
double r84028 = r84021 * r84017;
double r84029 = 9.3826692587093e-317;
bool r84030 = r84017 <= r84029;
double r84031 = r84022 / r84016;
double r84032 = r84020 * r84031;
double r84033 = 4.04936385748647e+289;
bool r84034 = r84017 <= r84033;
double r84035 = r84034 ? r84028 : r84025;
double r84036 = r84030 ? r84032 : r84035;
double r84037 = r84027 ? r84028 : r84036;
double r84038 = r84019 ? r84025 : r84037;
return r84038;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.7068380634183283e+142 or 4.04936385748647e+289 < (/ y z) Initial program 41.9
Simplified27.5
rmApplied add-cube-cbrt28.2
Applied *-un-lft-identity28.2
Applied times-frac28.2
Applied associate-*r*7.5
Simplified7.5
rmApplied *-un-lft-identity7.5
Applied associate-*l*7.5
Simplified2.3
rmApplied div-inv2.4
if -2.7068380634183283e+142 < (/ y z) < -1.087083851259826e-304 or 9.3826692587093e-317 < (/ y z) < 4.04936385748647e+289Initial program 9.4
Simplified0.2
if -1.087083851259826e-304 < (/ y z) < 9.3826692587093e-317Initial program 21.4
Simplified20.6
rmApplied add-cube-cbrt20.6
Applied *-un-lft-identity20.6
Applied times-frac20.6
Applied associate-*r*4.4
Simplified4.4
rmApplied *-un-lft-identity4.4
Applied associate-*l*4.4
Simplified0.1
Final simplification0.5
herbie shell --seed 2019346 +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)))