x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.029723206596843 \cdot 10^{+176}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -4.3008774718832626 \cdot 10^{-219}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le 6.218185316133478 \cdot 10^{-205}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\
\mathbf{elif}\;\frac{y}{z} \le 4.076427841528641 \cdot 10^{+299}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\
\end{array}double f(double x, double y, double z, double t) {
double r3753631 = x;
double r3753632 = y;
double r3753633 = z;
double r3753634 = r3753632 / r3753633;
double r3753635 = t;
double r3753636 = r3753634 * r3753635;
double r3753637 = r3753636 / r3753635;
double r3753638 = r3753631 * r3753637;
return r3753638;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r3753639 = y;
double r3753640 = z;
double r3753641 = r3753639 / r3753640;
double r3753642 = -2.029723206596843e+176;
bool r3753643 = r3753641 <= r3753642;
double r3753644 = x;
double r3753645 = r3753644 * r3753639;
double r3753646 = r3753645 / r3753640;
double r3753647 = -4.3008774718832626e-219;
bool r3753648 = r3753641 <= r3753647;
double r3753649 = r3753640 / r3753639;
double r3753650 = r3753644 / r3753649;
double r3753651 = 6.218185316133478e-205;
bool r3753652 = r3753641 <= r3753651;
double r3753653 = r3753640 / r3753644;
double r3753654 = r3753639 / r3753653;
double r3753655 = 4.076427841528641e+299;
bool r3753656 = r3753641 <= r3753655;
double r3753657 = r3753641 * r3753644;
double r3753658 = r3753656 ? r3753657 : r3753654;
double r3753659 = r3753652 ? r3753654 : r3753658;
double r3753660 = r3753648 ? r3753650 : r3753659;
double r3753661 = r3753643 ? r3753646 : r3753660;
return r3753661;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.029723206596843e+176Initial program 34.5
Simplified2.1
Taylor expanded around -inf 1.2
if -2.029723206596843e+176 < (/ y z) < -4.3008774718832626e-219Initial program 7.4
Simplified10.0
Taylor expanded around -inf 9.1
rmApplied associate-/l*0.2
if -4.3008774718832626e-219 < (/ y z) < 6.218185316133478e-205 or 4.076427841528641e+299 < (/ y z) Initial program 21.6
Simplified0.3
Taylor expanded around -inf 0.4
rmApplied add-cube-cbrt1.0
Applied associate-/r*1.0
rmApplied *-un-lft-identity1.0
Applied cbrt-prod1.0
Applied *-un-lft-identity1.0
Applied times-frac1.0
Simplified1.0
Simplified0.4
if 6.218185316133478e-205 < (/ y z) < 4.076427841528641e+299Initial program 9.6
Simplified8.9
rmApplied div-inv9.0
Applied associate-*l*0.3
Simplified0.2
Final simplification0.3
herbie shell --seed 2019142
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))