x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.89968713120227716200243957970138180903 \cdot 10^{210}:\\
\;\;\;\;\frac{1}{\frac{\frac{z}{x}}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le -2.674553152877029983261934607928478862346 \cdot 10^{-163}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{elif}\;\frac{y}{z} \le -0.0:\\
\;\;\;\;\frac{y \cdot x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 1.288243228157504650577480569870560524088 \cdot 10^{170}:\\
\;\;\;\;\frac{\frac{y}{z}}{\frac{1}{x}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r71996 = x;
double r71997 = y;
double r71998 = z;
double r71999 = r71997 / r71998;
double r72000 = t;
double r72001 = r71999 * r72000;
double r72002 = r72001 / r72000;
double r72003 = r71996 * r72002;
return r72003;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r72004 = y;
double r72005 = z;
double r72006 = r72004 / r72005;
double r72007 = -2.899687131202277e+210;
bool r72008 = r72006 <= r72007;
double r72009 = 1.0;
double r72010 = x;
double r72011 = r72005 / r72010;
double r72012 = r72011 / r72004;
double r72013 = r72009 / r72012;
double r72014 = -2.67455315287703e-163;
bool r72015 = r72006 <= r72014;
double r72016 = r72006 * r72010;
double r72017 = -0.0;
bool r72018 = r72006 <= r72017;
double r72019 = r72004 * r72010;
double r72020 = r72019 / r72005;
double r72021 = 1.2882432281575047e+170;
bool r72022 = r72006 <= r72021;
double r72023 = r72009 / r72010;
double r72024 = r72006 / r72023;
double r72025 = r72010 / r72005;
double r72026 = r72004 * r72025;
double r72027 = r72022 ? r72024 : r72026;
double r72028 = r72018 ? r72020 : r72027;
double r72029 = r72015 ? r72016 : r72028;
double r72030 = r72008 ? r72013 : r72029;
return r72030;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -2.899687131202277e+210Initial program 42.0
Simplified0.7
rmApplied associate-/l*1.1
rmApplied clear-num1.2
if -2.899687131202277e+210 < (/ y z) < -2.67455315287703e-163Initial program 7.5
Simplified10.1
rmApplied associate-/l*10.1
rmApplied associate-/r/0.2
if -2.67455315287703e-163 < (/ y z) < -0.0Initial program 16.9
Simplified0.8
if -0.0 < (/ y z) < 1.2882432281575047e+170Initial program 10.2
Simplified7.5
rmApplied associate-/l*6.7
rmApplied div-inv6.7
Applied associate-/r*3.5
if 1.2882432281575047e+170 < (/ y z) Initial program 37.2
Simplified2.2
rmApplied *-un-lft-identity2.2
Applied times-frac1.8
Simplified1.8
Final simplification0.6
herbie shell --seed 2019209 +o rules:numerics
(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)))