x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -6.29544524415545219149038523268139908958 \cdot 10^{285}:\\
\;\;\;\;\left(x \cdot y\right) \cdot \frac{1}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -1.575588880456927846517204610144689059531 \cdot 10^{-286}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le 3.757059281014894097749857788400547545613 \cdot 10^{-220}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 1.409130514825537046443418609777720419861 \cdot 10^{217}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r71401 = x;
double r71402 = y;
double r71403 = z;
double r71404 = r71402 / r71403;
double r71405 = t;
double r71406 = r71404 * r71405;
double r71407 = r71406 / r71405;
double r71408 = r71401 * r71407;
return r71408;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r71409 = y;
double r71410 = z;
double r71411 = r71409 / r71410;
double r71412 = -6.295445244155452e+285;
bool r71413 = r71411 <= r71412;
double r71414 = x;
double r71415 = r71414 * r71409;
double r71416 = 1.0;
double r71417 = r71416 / r71410;
double r71418 = r71415 * r71417;
double r71419 = -1.5755888804569278e-286;
bool r71420 = r71411 <= r71419;
double r71421 = r71410 / r71409;
double r71422 = r71414 / r71421;
double r71423 = 3.757059281014894e-220;
bool r71424 = r71411 <= r71423;
double r71425 = r71415 / r71410;
double r71426 = 1.409130514825537e+217;
bool r71427 = r71411 <= r71426;
double r71428 = r71411 * r71414;
double r71429 = r71414 / r71410;
double r71430 = r71409 * r71429;
double r71431 = r71427 ? r71428 : r71430;
double r71432 = r71424 ? r71425 : r71431;
double r71433 = r71420 ? r71422 : r71432;
double r71434 = r71413 ? r71418 : r71433;
return r71434;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -6.295445244155452e+285Initial program 58.1
Simplified0.2
rmApplied div-inv0.3
if -6.295445244155452e+285 < (/ y z) < -1.5755888804569278e-286Initial program 10.7
Simplified7.7
rmApplied associate-/l*0.2
if -1.5755888804569278e-286 < (/ y z) < 3.757059281014894e-220Initial program 18.8
Simplified0.3
rmApplied associate-/l*15.6
Taylor expanded around 0 0.3
if 3.757059281014894e-220 < (/ y z) < 1.409130514825537e+217Initial program 8.1
Simplified9.2
rmApplied associate-/l*0.2
rmApplied div-inv0.3
Simplified0.2
if 1.409130514825537e+217 < (/ y z) Initial program 44.0
Simplified1.0
Taylor expanded around 0 1.0
Simplified0.4
Final simplification0.3
herbie shell --seed 2019194
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))