x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -3.00847826157384981 \cdot 10^{150} \lor \neg \left(\frac{y}{z} \le -9.59916746614835709 \cdot 10^{-156} \lor \neg \left(\frac{y}{z} \le 1.38338 \cdot 10^{-322}\right)\right):\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\end{array}double f(double x, double y, double z, double t) {
double r75636 = x;
double r75637 = y;
double r75638 = z;
double r75639 = r75637 / r75638;
double r75640 = t;
double r75641 = r75639 * r75640;
double r75642 = r75641 / r75640;
double r75643 = r75636 * r75642;
return r75643;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r75644 = y;
double r75645 = z;
double r75646 = r75644 / r75645;
double r75647 = -3.0084782615738498e+150;
bool r75648 = r75646 <= r75647;
double r75649 = -9.599167466148357e-156;
bool r75650 = r75646 <= r75649;
double r75651 = 1.3833838083555e-322;
bool r75652 = r75646 <= r75651;
double r75653 = !r75652;
bool r75654 = r75650 || r75653;
double r75655 = !r75654;
bool r75656 = r75648 || r75655;
double r75657 = x;
double r75658 = r75657 * r75644;
double r75659 = r75658 / r75645;
double r75660 = r75645 / r75644;
double r75661 = r75657 / r75660;
double r75662 = r75656 ? r75659 : r75661;
return r75662;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -3.0084782615738498e+150 or -9.599167466148357e-156 < (/ y z) < 1.3833838083555e-322Initial program 21.1
Simplified13.0
rmApplied associate-*r/1.3
if -3.0084782615738498e+150 < (/ y z) < -9.599167466148357e-156 or 1.3833838083555e-322 < (/ y z) Initial program 10.8
Simplified2.9
rmApplied associate-*r/8.5
rmApplied associate-/l*2.9
Final simplification2.4
herbie shell --seed 2020024
(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)))