x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -1.42110258613913981 \cdot 10^{-87} \lor \neg \left(\frac{y}{z} \le 1.1014995100088346 \cdot 10^{-297} \lor \neg \left(\frac{y}{z} \le 1.84201517993839439 \cdot 10^{192}\right)\right):\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r100795 = x;
double r100796 = y;
double r100797 = z;
double r100798 = r100796 / r100797;
double r100799 = t;
double r100800 = r100798 * r100799;
double r100801 = r100800 / r100799;
double r100802 = r100795 * r100801;
return r100802;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r100803 = y;
double r100804 = z;
double r100805 = r100803 / r100804;
double r100806 = -1.4211025861391398e-87;
bool r100807 = r100805 <= r100806;
double r100808 = 1.1014995100088346e-297;
bool r100809 = r100805 <= r100808;
double r100810 = 1.8420151799383944e+192;
bool r100811 = r100805 <= r100810;
double r100812 = !r100811;
bool r100813 = r100809 || r100812;
double r100814 = !r100813;
bool r100815 = r100807 || r100814;
double r100816 = x;
double r100817 = r100816 * r100805;
double r100818 = r100816 * r100803;
double r100819 = r100818 / r100804;
double r100820 = r100815 ? r100817 : r100819;
return r100820;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -1.4211025861391398e-87 or 1.1014995100088346e-297 < (/ y z) < 1.8420151799383944e+192Initial program 11.1
Simplified2.5
if -1.4211025861391398e-87 < (/ y z) < 1.1014995100088346e-297 or 1.8420151799383944e+192 < (/ y z) Initial program 20.6
Simplified12.1
rmApplied add-cube-cbrt12.6
Applied *-un-lft-identity12.6
Applied times-frac12.6
Applied associate-*r*3.6
Simplified3.6
rmApplied *-un-lft-identity3.6
Applied associate-*l*3.6
Simplified1.8
Final simplification2.2
herbie shell --seed 2020049
(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)))