x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;z \le -4.057062710333388 \cdot 10^{-256}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;z \le 1.0531420844975264 \cdot 10^{-216}:\\
\;\;\;\;\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 r3584491 = x;
double r3584492 = y;
double r3584493 = z;
double r3584494 = r3584492 / r3584493;
double r3584495 = t;
double r3584496 = r3584494 * r3584495;
double r3584497 = r3584496 / r3584495;
double r3584498 = r3584491 * r3584497;
return r3584498;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r3584499 = z;
double r3584500 = -4.057062710333388e-256;
bool r3584501 = r3584499 <= r3584500;
double r3584502 = x;
double r3584503 = y;
double r3584504 = r3584502 * r3584503;
double r3584505 = r3584504 / r3584499;
double r3584506 = 1.0531420844975264e-216;
bool r3584507 = r3584499 <= r3584506;
double r3584508 = r3584499 / r3584503;
double r3584509 = r3584502 / r3584508;
double r3584510 = r3584507 ? r3584509 : r3584505;
double r3584511 = r3584501 ? r3584505 : r3584510;
return r3584511;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if z < -4.057062710333388e-256 or 1.0531420844975264e-216 < z Initial program 14.3
Simplified5.3
rmApplied div-inv5.3
Applied associate-*r*5.4
Taylor expanded around 0 5.3
if -4.057062710333388e-256 < z < 1.0531420844975264e-216Initial program 23.2
Simplified13.9
Taylor expanded around 0 14.2
rmApplied associate-/l*12.2
Final simplification5.9
herbie shell --seed 2019158 +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)))