x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} = -\infty:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -1.418027389015775738156568367664862717017 \cdot 10^{-287}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{\sqrt[3]{z}}{\sqrt[3]{x}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{x}}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{z}}\\
\end{array}double f(double x, double y, double z, double t) {
double r4261218 = x;
double r4261219 = y;
double r4261220 = z;
double r4261221 = r4261219 / r4261220;
double r4261222 = t;
double r4261223 = r4261221 * r4261222;
double r4261224 = r4261223 / r4261222;
double r4261225 = r4261218 * r4261224;
return r4261225;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r4261226 = y;
double r4261227 = z;
double r4261228 = r4261226 / r4261227;
double r4261229 = -inf.0;
bool r4261230 = r4261228 <= r4261229;
double r4261231 = x;
double r4261232 = r4261231 / r4261227;
double r4261233 = r4261226 * r4261232;
double r4261234 = -1.4180273890157757e-287;
bool r4261235 = r4261228 <= r4261234;
double r4261236 = r4261227 / r4261226;
double r4261237 = r4261231 / r4261236;
double r4261238 = cbrt(r4261227);
double r4261239 = cbrt(r4261231);
double r4261240 = r4261238 / r4261239;
double r4261241 = r4261240 * r4261240;
double r4261242 = r4261226 / r4261241;
double r4261243 = r4261239 / r4261238;
double r4261244 = r4261242 * r4261243;
double r4261245 = r4261235 ? r4261237 : r4261244;
double r4261246 = r4261230 ? r4261233 : r4261245;
return r4261246;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -inf.0Initial program 64.0
Simplified0.3
if -inf.0 < (/ y z) < -1.4180273890157757e-287Initial program 10.4
Simplified7.8
rmApplied add-cube-cbrt8.6
Applied *-un-lft-identity8.6
Applied times-frac8.7
Applied associate-*r*2.7
Simplified2.7
rmApplied *-un-lft-identity2.7
Applied cbrt-prod2.7
Applied *-un-lft-identity2.7
Applied times-frac2.7
Applied associate-*r*2.7
Simplified2.7
rmApplied *-un-lft-identity2.7
Applied associate-*l*2.7
Simplified0.2
if -1.4180273890157757e-287 < (/ y z) Initial program 16.1
Simplified5.0
rmApplied add-cube-cbrt5.7
Applied *-un-lft-identity5.7
Applied times-frac5.7
Applied associate-*r*6.0
Simplified6.0
rmApplied *-un-lft-identity6.0
Applied cbrt-prod6.0
Applied *-un-lft-identity6.0
Applied times-frac6.0
Applied associate-*r*6.0
Simplified6.0
rmApplied *-un-lft-identity6.0
Applied cbrt-prod6.0
Applied add-cube-cbrt6.1
Applied times-frac6.1
Applied associate-*r*5.2
Simplified1.8
Final simplification1.2
herbie shell --seed 2019170 +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)))