x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;x \cdot \frac{\frac{y}{z} \cdot t}{t} \le 1.4005708519536854 \cdot 10^{-298}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{y}{\sqrt[3]{z}}} \cdot \sqrt[3]{\frac{y}{\sqrt[3]{z}}}}{\sqrt[3]{\sqrt[3]{z} \cdot \sqrt[3]{z}}} \cdot \left(\frac{\sqrt[3]{\frac{y}{\sqrt[3]{z}}}}{\sqrt[3]{\sqrt[3]{z}}} \cdot \frac{x}{\sqrt[3]{z}}\right)\\
\mathbf{elif}\;x \cdot \frac{\frac{y}{z} \cdot t}{t} \le 5.155399044473928 \cdot 10^{+268}:\\
\;\;\;\;x \cdot \frac{\frac{y}{z} \cdot t}{t}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r1879091 = x;
double r1879092 = y;
double r1879093 = z;
double r1879094 = r1879092 / r1879093;
double r1879095 = t;
double r1879096 = r1879094 * r1879095;
double r1879097 = r1879096 / r1879095;
double r1879098 = r1879091 * r1879097;
return r1879098;
}
double f(double x, double y, double z, double t) {
double r1879099 = x;
double r1879100 = y;
double r1879101 = z;
double r1879102 = r1879100 / r1879101;
double r1879103 = t;
double r1879104 = r1879102 * r1879103;
double r1879105 = r1879104 / r1879103;
double r1879106 = r1879099 * r1879105;
double r1879107 = 1.4005708519536854e-298;
bool r1879108 = r1879106 <= r1879107;
double r1879109 = cbrt(r1879101);
double r1879110 = r1879100 / r1879109;
double r1879111 = cbrt(r1879110);
double r1879112 = r1879111 * r1879111;
double r1879113 = r1879109 * r1879109;
double r1879114 = cbrt(r1879113);
double r1879115 = r1879112 / r1879114;
double r1879116 = cbrt(r1879109);
double r1879117 = r1879111 / r1879116;
double r1879118 = r1879099 / r1879109;
double r1879119 = r1879117 * r1879118;
double r1879120 = r1879115 * r1879119;
double r1879121 = 5.155399044473928e+268;
bool r1879122 = r1879106 <= r1879121;
double r1879123 = r1879099 * r1879100;
double r1879124 = r1879123 / r1879101;
double r1879125 = r1879122 ? r1879106 : r1879124;
double r1879126 = r1879108 ? r1879120 : r1879125;
return r1879126;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (* x (/ (* (/ y z) t) t)) < 1.4005708519536854e-298Initial program 16.0
Simplified4.8
rmApplied add-cube-cbrt5.5
Applied *-un-lft-identity5.5
Applied times-frac5.5
Applied associate-*r*5.0
Simplified5.0
rmApplied add-cube-cbrt5.0
Applied cbrt-prod5.1
Applied add-cube-cbrt5.3
Applied times-frac5.3
Applied associate-*l*3.3
if 1.4005708519536854e-298 < (* x (/ (* (/ y z) t) t)) < 5.155399044473928e+268Initial program 0.9
if 5.155399044473928e+268 < (* x (/ (* (/ y z) t) t)) Initial program 49.2
Simplified6.1
Taylor expanded around 0 5.6
Final simplification2.8
herbie shell --seed 2019154 +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)))