x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -5.428157915342263 \cdot 10^{-204}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le 1.763171201931148 \cdot 10^{-300}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{z}}} \cdot \left(\frac{x}{\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{y}}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{z} \cdot \sqrt[3]{z}}}\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r1877597 = x;
double r1877598 = y;
double r1877599 = z;
double r1877600 = r1877598 / r1877599;
double r1877601 = t;
double r1877602 = r1877600 * r1877601;
double r1877603 = r1877602 / r1877601;
double r1877604 = r1877597 * r1877603;
return r1877604;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r1877605 = y;
double r1877606 = z;
double r1877607 = r1877605 / r1877606;
double r1877608 = -5.428157915342263e-204;
bool r1877609 = r1877607 <= r1877608;
double r1877610 = x;
double r1877611 = r1877606 / r1877605;
double r1877612 = r1877610 / r1877611;
double r1877613 = 1.763171201931148e-300;
bool r1877614 = r1877607 <= r1877613;
double r1877615 = r1877610 * r1877605;
double r1877616 = r1877615 / r1877606;
double r1877617 = cbrt(r1877605);
double r1877618 = cbrt(r1877606);
double r1877619 = cbrt(r1877618);
double r1877620 = r1877617 / r1877619;
double r1877621 = r1877618 * r1877618;
double r1877622 = r1877621 / r1877617;
double r1877623 = r1877610 / r1877622;
double r1877624 = cbrt(r1877621);
double r1877625 = r1877617 / r1877624;
double r1877626 = r1877623 * r1877625;
double r1877627 = r1877620 * r1877626;
double r1877628 = r1877614 ? r1877616 : r1877627;
double r1877629 = r1877609 ? r1877612 : r1877628;
return r1877629;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -5.428157915342263e-204Initial program 13.2
Simplified8.5
rmApplied associate-/l*4.2
if -5.428157915342263e-204 < (/ y z) < 1.763171201931148e-300Initial program 17.5
Simplified0.3
if 1.763171201931148e-300 < (/ y z) Initial program 13.8
Simplified7.4
rmApplied add-cube-cbrt8.3
Applied times-frac5.4
rmApplied add-cube-cbrt5.4
Applied cbrt-prod5.5
Applied add-cube-cbrt5.7
Applied times-frac5.7
Applied associate-*r*4.9
rmApplied *-un-lft-identity4.9
Applied times-frac4.9
Applied associate-*r*4.9
Simplified2.5
Final simplification2.7
herbie shell --seed 2019128 +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)))