x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{\frac{y}{z} \cdot t}{t} \le -1.132598746854114829512768870270445047675 \cdot 10^{144}:\\
\;\;\;\;\frac{x}{z} \cdot y\\
\mathbf{elif}\;\frac{\frac{y}{z} \cdot t}{t} \le -9.566229803325124100269745305371770265409 \cdot 10^{-252}:\\
\;\;\;\;x \cdot \frac{\frac{y}{z} \cdot t}{t}\\
\mathbf{elif}\;\frac{\frac{y}{z} \cdot t}{t} \le 6.302366347983369041436870740623293996999 \cdot 10^{-316}:\\
\;\;\;\;\left(\sqrt[3]{x} \cdot \left(y \cdot \sqrt[3]{x}\right)\right) \cdot \frac{\sqrt[3]{x}}{z}\\
\mathbf{elif}\;\frac{\frac{y}{z} \cdot t}{t} \le 1.885617898338493029317290072257967706665 \cdot 10^{255}:\\
\;\;\;\;x \cdot \frac{\frac{y}{z} \cdot t}{t}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{x} \cdot \left(y \cdot \sqrt[3]{x}\right)\right) \cdot \frac{\sqrt[3]{x}}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r4892568 = x;
double r4892569 = y;
double r4892570 = z;
double r4892571 = r4892569 / r4892570;
double r4892572 = t;
double r4892573 = r4892571 * r4892572;
double r4892574 = r4892573 / r4892572;
double r4892575 = r4892568 * r4892574;
return r4892575;
}
double f(double x, double y, double z, double t) {
double r4892576 = y;
double r4892577 = z;
double r4892578 = r4892576 / r4892577;
double r4892579 = t;
double r4892580 = r4892578 * r4892579;
double r4892581 = r4892580 / r4892579;
double r4892582 = -1.1325987468541148e+144;
bool r4892583 = r4892581 <= r4892582;
double r4892584 = x;
double r4892585 = r4892584 / r4892577;
double r4892586 = r4892585 * r4892576;
double r4892587 = -9.566229803325124e-252;
bool r4892588 = r4892581 <= r4892587;
double r4892589 = r4892584 * r4892581;
double r4892590 = 6.3023663479834e-316;
bool r4892591 = r4892581 <= r4892590;
double r4892592 = cbrt(r4892584);
double r4892593 = r4892576 * r4892592;
double r4892594 = r4892592 * r4892593;
double r4892595 = r4892592 / r4892577;
double r4892596 = r4892594 * r4892595;
double r4892597 = 1.885617898338493e+255;
bool r4892598 = r4892581 <= r4892597;
double r4892599 = r4892598 ? r4892589 : r4892596;
double r4892600 = r4892591 ? r4892596 : r4892599;
double r4892601 = r4892588 ? r4892589 : r4892600;
double r4892602 = r4892583 ? r4892586 : r4892601;
return r4892602;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ (* (/ y z) t) t) < -1.1325987468541148e+144Initial program 37.5
Simplified4.4
if -1.1325987468541148e+144 < (/ (* (/ y z) t) t) < -9.566229803325124e-252 or 6.3023663479834e-316 < (/ (* (/ y z) t) t) < 1.885617898338493e+255Initial program 0.7
if -9.566229803325124e-252 < (/ (* (/ y z) t) t) < 6.3023663479834e-316 or 1.885617898338493e+255 < (/ (* (/ y z) t) t) Initial program 32.8
Simplified1.6
rmApplied *-un-lft-identity1.6
Applied add-cube-cbrt2.2
Applied times-frac2.2
Applied associate-*r*1.8
Simplified1.8
Final simplification1.4
herbie shell --seed 2019169
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))