x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;t \le -9.926373121714999364733704764752531243436 \cdot 10^{-253}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\
\mathbf{elif}\;t \le 602927915546591127029321564160:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r62471 = x;
double r62472 = y;
double r62473 = z;
double r62474 = r62472 / r62473;
double r62475 = t;
double r62476 = r62474 * r62475;
double r62477 = r62476 / r62475;
double r62478 = r62471 * r62477;
return r62478;
}
double f(double x, double y, double z, double t) {
double r62479 = t;
double r62480 = -9.926373121714999e-253;
bool r62481 = r62479 <= r62480;
double r62482 = y;
double r62483 = z;
double r62484 = x;
double r62485 = r62483 / r62484;
double r62486 = r62482 / r62485;
double r62487 = 6.029279155465911e+29;
bool r62488 = r62479 <= r62487;
double r62489 = r62483 / r62482;
double r62490 = r62484 / r62489;
double r62491 = r62484 * r62482;
double r62492 = r62491 / r62483;
double r62493 = r62488 ? r62490 : r62492;
double r62494 = r62481 ? r62486 : r62493;
return r62494;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if t < -9.926373121714999e-253Initial program 13.5
Simplified6.4
rmApplied associate-/l*5.8
if -9.926373121714999e-253 < t < 6.029279155465911e+29Initial program 15.6
Simplified6.0
rmApplied div-inv6.1
Taylor expanded around 0 6.0
Simplified5.8
if 6.029279155465911e+29 < t Initial program 15.4
Simplified5.3
rmApplied div-inv5.3
rmApplied associate-*r/5.3
Simplified5.3
Final simplification5.7
herbie shell --seed 2019212 +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)))