x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -1.009555688743657053093976996432682877192 \cdot 10^{278}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -1.900141742787772715345890115335440787699 \cdot 10^{-270}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le 4.438182973596565301288302827093808047147 \cdot 10^{-272}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 3.561199608254915194562496763078682553454 \cdot 10^{97}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{z}}{\frac{1}{y}}\\
\end{array}double f(double x, double y, double z, double t) {
double r63454 = x;
double r63455 = y;
double r63456 = z;
double r63457 = r63455 / r63456;
double r63458 = t;
double r63459 = r63457 * r63458;
double r63460 = r63459 / r63458;
double r63461 = r63454 * r63460;
return r63461;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r63462 = y;
double r63463 = z;
double r63464 = r63462 / r63463;
double r63465 = -1.009555688743657e+278;
bool r63466 = r63464 <= r63465;
double r63467 = x;
double r63468 = r63467 / r63463;
double r63469 = r63462 * r63468;
double r63470 = -1.9001417427877727e-270;
bool r63471 = r63464 <= r63470;
double r63472 = r63463 / r63462;
double r63473 = r63467 / r63472;
double r63474 = 4.438182973596565e-272;
bool r63475 = r63464 <= r63474;
double r63476 = r63467 * r63462;
double r63477 = r63476 / r63463;
double r63478 = 3.561199608254915e+97;
bool r63479 = r63464 <= r63478;
double r63480 = 1.0;
double r63481 = r63480 / r63462;
double r63482 = r63468 / r63481;
double r63483 = r63479 ? r63473 : r63482;
double r63484 = r63475 ? r63477 : r63483;
double r63485 = r63471 ? r63473 : r63484;
double r63486 = r63466 ? r63469 : r63485;
return r63486;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -1.009555688743657e+278Initial program 54.6
Simplified45.9
rmApplied div-inv45.9
Applied associate-*l*0.4
Simplified0.2
if -1.009555688743657e+278 < (/ y z) < -1.9001417427877727e-270 or 4.438182973596565e-272 < (/ y z) < 3.561199608254915e+97Initial program 8.2
Simplified0.2
rmApplied div-inv0.3
Applied associate-*l*9.0
Simplified8.9
rmApplied *-un-lft-identity8.9
Applied associate-*l*8.9
Simplified8.7
rmApplied associate-/l*0.2
if -1.9001417427877727e-270 < (/ y z) < 4.438182973596565e-272Initial program 18.9
Simplified15.8
rmApplied div-inv15.8
Applied associate-*l*0.1
Simplified0.1
rmApplied *-un-lft-identity0.1
Applied associate-*l*0.1
Simplified0.1
if 3.561199608254915e+97 < (/ y z) Initial program 26.4
Simplified12.8
rmApplied div-inv12.8
Applied associate-*l*4.0
Simplified4.0
rmApplied *-un-lft-identity4.0
Applied associate-*l*4.0
Simplified4.1
rmApplied associate-/l*11.7
rmApplied div-inv11.8
Applied associate-/r*4.0
Final simplification0.7
herbie shell --seed 2019303
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
:precision binary64
(* x (/ (* (/ y z) t) t)))