x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.31647839900996075 \cdot 10^{201} \lor \neg \left(\frac{y}{z} \le -1.08230262257267508 \cdot 10^{-225} \lor \neg \left(\frac{y}{z} \le 7.8156456972782032 \cdot 10^{-118} \lor \neg \left(\frac{y}{z} \le 2.4596581156209282 \cdot 10^{208}\right)\right)\right):\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\end{array}double f(double x, double y, double z, double t) {
double r87740 = x;
double r87741 = y;
double r87742 = z;
double r87743 = r87741 / r87742;
double r87744 = t;
double r87745 = r87743 * r87744;
double r87746 = r87745 / r87744;
double r87747 = r87740 * r87746;
return r87747;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r87748 = y;
double r87749 = z;
double r87750 = r87748 / r87749;
double r87751 = -2.3164783990099608e+201;
bool r87752 = r87750 <= r87751;
double r87753 = -1.0823026225726751e-225;
bool r87754 = r87750 <= r87753;
double r87755 = 7.815645697278203e-118;
bool r87756 = r87750 <= r87755;
double r87757 = 2.459658115620928e+208;
bool r87758 = r87750 <= r87757;
double r87759 = !r87758;
bool r87760 = r87756 || r87759;
double r87761 = !r87760;
bool r87762 = r87754 || r87761;
double r87763 = !r87762;
bool r87764 = r87752 || r87763;
double r87765 = x;
double r87766 = r87765 * r87748;
double r87767 = r87766 / r87749;
double r87768 = r87749 / r87748;
double r87769 = r87765 / r87768;
double r87770 = r87764 ? r87767 : r87769;
return r87770;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.3164783990099608e+201 or -1.0823026225726751e-225 < (/ y z) < 7.815645697278203e-118 or 2.459658115620928e+208 < (/ y z) Initial program 23.0
Simplified13.9
rmApplied *-un-lft-identity13.9
Applied add-cube-cbrt14.4
Applied times-frac14.4
Applied associate-*r*3.8
Simplified3.8
rmApplied pow13.8
Applied pow13.8
Applied pow13.8
Applied pow13.8
Applied pow-prod-down3.8
Applied pow-prod-down3.8
Applied pow-prod-down3.8
Simplified1.3
if -2.3164783990099608e+201 < (/ y z) < -1.0823026225726751e-225 or 7.815645697278203e-118 < (/ y z) < 2.459658115620928e+208Initial program 7.6
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied add-cube-cbrt1.3
Applied times-frac1.3
Applied associate-*r*6.7
Simplified6.7
rmApplied pow16.7
Applied pow16.7
Applied pow16.7
Applied pow16.7
Applied pow-prod-down6.7
Applied pow-prod-down6.7
Applied pow-prod-down6.7
Simplified9.9
rmApplied associate-/l*0.2
Final simplification0.7
herbie shell --seed 2020089 +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)))