x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;z \le 1.6218775689393483 \cdot 10^{-99} \lor \neg \left(z \le 1.32166055357661369 \cdot 10^{217}\right):\\
\;\;\;\;\frac{y \cdot x}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\end{array}double f(double x, double y, double z, double t) {
double r88994 = x;
double r88995 = y;
double r88996 = z;
double r88997 = r88995 / r88996;
double r88998 = t;
double r88999 = r88997 * r88998;
double r89000 = r88999 / r88998;
double r89001 = r88994 * r89000;
return r89001;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r89002 = z;
double r89003 = 1.6218775689393483e-99;
bool r89004 = r89002 <= r89003;
double r89005 = 1.3216605535766137e+217;
bool r89006 = r89002 <= r89005;
double r89007 = !r89006;
bool r89008 = r89004 || r89007;
double r89009 = y;
double r89010 = x;
double r89011 = r89009 * r89010;
double r89012 = r89011 / r89002;
double r89013 = r89002 / r89009;
double r89014 = r89010 / r89013;
double r89015 = r89008 ? r89012 : r89014;
return r89015;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if z < 1.6218775689393483e-99 or 1.3216605535766137e+217 < z Initial program 15.2
Simplified6.7
if 1.6218775689393483e-99 < z < 1.3216605535766137e+217Initial program 12.7
Simplified4.3
rmApplied clear-num4.8
Simplified4.8
rmApplied *-un-lft-identity4.8
Applied times-frac4.7
Applied associate-/r*4.4
Simplified4.3
Final simplification6.0
herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))