x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.2521697391721805 \cdot 10^{+183}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -3.917190651235875 \cdot 10^{-264}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{elif}\;\frac{y}{z} \le 1.2214116120111555 \cdot 10^{-224}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\
\mathbf{elif}\;\frac{y}{z} \le 3.067025007758323 \cdot 10^{+241}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r15828753 = x;
double r15828754 = y;
double r15828755 = z;
double r15828756 = r15828754 / r15828755;
double r15828757 = t;
double r15828758 = r15828756 * r15828757;
double r15828759 = r15828758 / r15828757;
double r15828760 = r15828753 * r15828759;
return r15828760;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r15828761 = y;
double r15828762 = z;
double r15828763 = r15828761 / r15828762;
double r15828764 = -2.2521697391721805e+183;
bool r15828765 = r15828763 <= r15828764;
double r15828766 = x;
double r15828767 = r15828766 * r15828761;
double r15828768 = r15828767 / r15828762;
double r15828769 = -3.917190651235875e-264;
bool r15828770 = r15828763 <= r15828769;
double r15828771 = r15828763 * r15828766;
double r15828772 = 1.2214116120111555e-224;
bool r15828773 = r15828763 <= r15828772;
double r15828774 = r15828762 / r15828766;
double r15828775 = r15828761 / r15828774;
double r15828776 = 3.067025007758323e+241;
bool r15828777 = r15828763 <= r15828776;
double r15828778 = r15828777 ? r15828771 : r15828768;
double r15828779 = r15828773 ? r15828775 : r15828778;
double r15828780 = r15828770 ? r15828771 : r15828779;
double r15828781 = r15828765 ? r15828768 : r15828780;
return r15828781;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.2521697391721805e+183 or 3.067025007758323e+241 < (/ y z) Initial program 40.4
Simplified28.2
rmApplied *-un-lft-identity28.2
Applied add-cube-cbrt28.8
Applied times-frac28.8
Applied associate-*r*7.8
Taylor expanded around 0 1.0
if -2.2521697391721805e+183 < (/ y z) < -3.917190651235875e-264 or 1.2214116120111555e-224 < (/ y z) < 3.067025007758323e+241Initial program 8.3
Simplified0.2
if -3.917190651235875e-264 < (/ y z) < 1.2214116120111555e-224Initial program 17.8
Simplified12.9
rmApplied *-un-lft-identity12.9
Applied add-cube-cbrt13.1
Applied times-frac13.1
Applied associate-*r*2.5
rmApplied associate-*r/2.5
Applied associate-*l/2.5
Simplified0.2
Final simplification0.3
herbie shell --seed 2019119 +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)))