x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} = -\infty:\\
\;\;\;\;\frac{1}{\frac{z}{x \cdot y}}\\
\mathbf{elif}\;\frac{y}{z} \le -1.434471595776521596384923059287499479756 \cdot 10^{-254}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le 1.707355746264835359667361500171699768251 \cdot 10^{-300}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 7.166584424187464259231246965323639075754 \cdot 10^{225}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{z}{x \cdot y}}\\
\end{array}double f(double x, double y, double z, double t) {
double r148395 = x;
double r148396 = y;
double r148397 = z;
double r148398 = r148396 / r148397;
double r148399 = t;
double r148400 = r148398 * r148399;
double r148401 = r148400 / r148399;
double r148402 = r148395 * r148401;
return r148402;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r148403 = y;
double r148404 = z;
double r148405 = r148403 / r148404;
double r148406 = -inf.0;
bool r148407 = r148405 <= r148406;
double r148408 = 1.0;
double r148409 = x;
double r148410 = r148409 * r148403;
double r148411 = r148404 / r148410;
double r148412 = r148408 / r148411;
double r148413 = -1.4344715957765216e-254;
bool r148414 = r148405 <= r148413;
double r148415 = r148404 / r148403;
double r148416 = r148409 / r148415;
double r148417 = 1.7073557462648354e-300;
bool r148418 = r148405 <= r148417;
double r148419 = r148410 / r148404;
double r148420 = 7.166584424187464e+225;
bool r148421 = r148405 <= r148420;
double r148422 = r148409 * r148405;
double r148423 = r148421 ? r148422 : r148412;
double r148424 = r148418 ? r148419 : r148423;
double r148425 = r148414 ? r148416 : r148424;
double r148426 = r148407 ? r148412 : r148425;
return r148426;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -inf.0 or 7.166584424187464e+225 < (/ y z) Initial program 53.1
Simplified43.1
rmApplied associate-*r/0.8
rmApplied clear-num0.8
if -inf.0 < (/ y z) < -1.4344715957765216e-254Initial program 10.4
Simplified0.2
rmApplied associate-*r/8.3
rmApplied associate-/l*0.2
if -1.4344715957765216e-254 < (/ y z) < 1.7073557462648354e-300Initial program 19.0
Simplified15.3
rmApplied associate-*r/0.1
if 1.7073557462648354e-300 < (/ y z) < 7.166584424187464e+225Initial program 9.1
Simplified0.2
Final simplification0.3
herbie shell --seed 2019353
(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)))