x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -1.63086994211637596483956921546385031623 \cdot 10^{66}:\\
\;\;\;\;\frac{y \cdot x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -6.545487680777495021156682531032583832353 \cdot 10^{-230}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{elif}\;\frac{y}{z} \le 4.814036022956164419199695264571075550494 \cdot 10^{-12}:\\
\;\;\;\;\frac{y \cdot x}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\
\end{array}double f(double x, double y, double z, double t) {
double r77499 = x;
double r77500 = y;
double r77501 = z;
double r77502 = r77500 / r77501;
double r77503 = t;
double r77504 = r77502 * r77503;
double r77505 = r77504 / r77503;
double r77506 = r77499 * r77505;
return r77506;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r77507 = y;
double r77508 = z;
double r77509 = r77507 / r77508;
double r77510 = -1.630869942116376e+66;
bool r77511 = r77509 <= r77510;
double r77512 = x;
double r77513 = r77507 * r77512;
double r77514 = r77513 / r77508;
double r77515 = -6.545487680777495e-230;
bool r77516 = r77509 <= r77515;
double r77517 = r77509 * r77512;
double r77518 = 4.8140360229561644e-12;
bool r77519 = r77509 <= r77518;
double r77520 = r77508 / r77512;
double r77521 = r77507 / r77520;
double r77522 = r77519 ? r77514 : r77521;
double r77523 = r77516 ? r77517 : r77522;
double r77524 = r77511 ? r77514 : r77523;
return r77524;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -1.630869942116376e+66 or -6.545487680777495e-230 < (/ y z) < 4.8140360229561644e-12Initial program 17.6
Simplified3.9
if -1.630869942116376e+66 < (/ y z) < -6.545487680777495e-230Initial program 6.5
Simplified9.8
rmApplied associate-/l*9.1
rmApplied associate-/r/0.2
if 4.8140360229561644e-12 < (/ y z) Initial program 18.7
Simplified8.3
rmApplied associate-/l*7.3
Final simplification3.7
herbie shell --seed 2019208 +o rules:numerics
(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)))