x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.588366971627017444543194392656819407323 \cdot 10^{79}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -7.584778841906227496781487885537839730751 \cdot 10^{-279}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{elif}\;\frac{y}{z} \le 0.0:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 1.406079879178553538420301463833789327206 \cdot 10^{177}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r106452 = x;
double r106453 = y;
double r106454 = z;
double r106455 = r106453 / r106454;
double r106456 = t;
double r106457 = r106455 * r106456;
double r106458 = r106457 / r106456;
double r106459 = r106452 * r106458;
return r106459;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r106460 = y;
double r106461 = z;
double r106462 = r106460 / r106461;
double r106463 = -2.5883669716270174e+79;
bool r106464 = r106462 <= r106463;
double r106465 = x;
double r106466 = r106465 / r106461;
double r106467 = r106460 * r106466;
double r106468 = -7.584778841906227e-279;
bool r106469 = r106462 <= r106468;
double r106470 = r106462 * r106465;
double r106471 = 0.0;
bool r106472 = r106462 <= r106471;
double r106473 = r106465 * r106460;
double r106474 = r106473 / r106461;
double r106475 = 1.4060798791785535e+177;
bool r106476 = r106462 <= r106475;
double r106477 = r106461 / r106460;
double r106478 = r106465 / r106477;
double r106479 = r106476 ? r106478 : r106467;
double r106480 = r106472 ? r106474 : r106479;
double r106481 = r106469 ? r106470 : r106480;
double r106482 = r106464 ? r106467 : r106481;
return r106482;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.5883669716270174e+79 or 1.4060798791785535e+177 < (/ y z) Initial program 31.5
Simplified16.2
rmApplied div-inv16.2
Applied associate-*l*4.1
Simplified4.0
if -2.5883669716270174e+79 < (/ y z) < -7.584778841906227e-279Initial program 8.4
Simplified0.2
if -7.584778841906227e-279 < (/ y z) < 0.0Initial program 18.3
Simplified15.3
rmApplied pow115.3
Applied pow115.3
Applied pow-prod-down15.3
Simplified0.1
if 0.0 < (/ y z) < 1.4060798791785535e+177Initial program 10.0
Simplified3.4
rmApplied pow13.4
Applied pow13.4
Applied pow-prod-down3.4
Simplified7.3
rmApplied associate-/l*3.6
Final simplification1.1
herbie shell --seed 2019351
(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)))