x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -3.636613989781371082537060282645406790623 \cdot 10^{235}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -4.268869399178432590236189660705002059275 \cdot 10^{-310}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\sqrt[3]{y} \cdot \frac{\frac{x}{\sqrt[3]{z}}}{\sqrt[3]{z}}\right) \cdot \sqrt[3]{y}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}\\
\end{array}double f(double x, double y, double z, double t) {
double r3748683 = x;
double r3748684 = y;
double r3748685 = z;
double r3748686 = r3748684 / r3748685;
double r3748687 = t;
double r3748688 = r3748686 * r3748687;
double r3748689 = r3748688 / r3748687;
double r3748690 = r3748683 * r3748689;
return r3748690;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r3748691 = y;
double r3748692 = z;
double r3748693 = r3748691 / r3748692;
double r3748694 = -3.636613989781371e+235;
bool r3748695 = r3748693 <= r3748694;
double r3748696 = x;
double r3748697 = r3748696 * r3748691;
double r3748698 = r3748697 / r3748692;
double r3748699 = -4.26886939917843e-310;
bool r3748700 = r3748693 <= r3748699;
double r3748701 = r3748693 * r3748696;
double r3748702 = cbrt(r3748691);
double r3748703 = cbrt(r3748692);
double r3748704 = r3748696 / r3748703;
double r3748705 = r3748704 / r3748703;
double r3748706 = r3748702 * r3748705;
double r3748707 = r3748706 * r3748702;
double r3748708 = r3748702 / r3748703;
double r3748709 = r3748707 * r3748708;
double r3748710 = r3748700 ? r3748701 : r3748709;
double r3748711 = r3748695 ? r3748698 : r3748710;
return r3748711;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -3.636613989781371e+235Initial program 48.0
Simplified0.4
if -3.636613989781371e+235 < (/ y z) < -4.26886939917843e-310Initial program 9.6
Simplified8.0
rmApplied *-un-lft-identity8.0
Applied times-frac0.2
Simplified0.2
if -4.26886939917843e-310 < (/ y z) Initial program 15.5
Simplified5.5
rmApplied add-cube-cbrt6.2
Applied times-frac5.2
rmApplied *-un-lft-identity5.2
Applied cbrt-prod5.2
Applied add-cube-cbrt5.4
Applied times-frac5.4
Applied associate-*r*4.0
Simplified4.0
Final simplification2.4
herbie shell --seed 2019172 +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)))