x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -1.45613981804384912 \cdot 10^{278}:\\
\;\;\;\;{\left(\frac{x \cdot y}{z}\right)}^{1}\\
\mathbf{elif}\;\frac{y}{z} \le -5.31650938160314506 \cdot 10^{-21}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 3.3409790596422747 \cdot 10^{-221}:\\
\;\;\;\;{\left(\frac{x \cdot y}{z}\right)}^{1}\\
\mathbf{elif}\;\frac{y}{z} \le 7.8490367773301062 \cdot 10^{81}:\\
\;\;\;\;{\left(\frac{x}{\frac{z}{y}}\right)}^{1}\\
\mathbf{else}:\\
\;\;\;\;{\left(\frac{x \cdot y}{z}\right)}^{1}\\
\end{array}double f(double x, double y, double z, double t) {
double r84346 = x;
double r84347 = y;
double r84348 = z;
double r84349 = r84347 / r84348;
double r84350 = t;
double r84351 = r84349 * r84350;
double r84352 = r84351 / r84350;
double r84353 = r84346 * r84352;
return r84353;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r84354 = y;
double r84355 = z;
double r84356 = r84354 / r84355;
double r84357 = -1.456139818043849e+278;
bool r84358 = r84356 <= r84357;
double r84359 = x;
double r84360 = r84359 * r84354;
double r84361 = r84360 / r84355;
double r84362 = 1.0;
double r84363 = pow(r84361, r84362);
double r84364 = -5.316509381603145e-21;
bool r84365 = r84356 <= r84364;
double r84366 = r84359 * r84356;
double r84367 = 3.3409790596422747e-221;
bool r84368 = r84356 <= r84367;
double r84369 = 7.849036777330106e+81;
bool r84370 = r84356 <= r84369;
double r84371 = r84355 / r84354;
double r84372 = r84359 / r84371;
double r84373 = pow(r84372, r84362);
double r84374 = r84370 ? r84373 : r84363;
double r84375 = r84368 ? r84363 : r84374;
double r84376 = r84365 ? r84366 : r84375;
double r84377 = r84358 ? r84363 : r84376;
return r84377;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -1.456139818043849e+278 or -5.316509381603145e-21 < (/ y z) < 3.3409790596422747e-221 or 7.849036777330106e+81 < (/ y z) Initial program 18.6
Simplified10.7
rmApplied *-un-lft-identity10.7
Applied add-cube-cbrt11.3
Applied times-frac11.3
Applied associate-*r*4.8
Simplified4.8
rmApplied pow14.8
Applied pow14.8
Applied pow14.8
Applied pow14.8
Applied pow-prod-down4.8
Applied pow-prod-down4.8
Applied pow-prod-down4.8
Simplified3.9
if -1.456139818043849e+278 < (/ y z) < -5.316509381603145e-21Initial program 10.4
Simplified0.3
if 3.3409790596422747e-221 < (/ y z) < 7.849036777330106e+81Initial program 6.3
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied add-cube-cbrt1.3
Applied times-frac1.3
Applied associate-*r*6.8
Simplified6.8
rmApplied pow16.8
Applied pow16.8
Applied pow16.8
Applied pow16.8
Applied pow-prod-down6.8
Applied pow-prod-down6.8
Applied pow-prod-down6.8
Simplified10.7
rmApplied associate-/l*0.2
Final simplification2.3
herbie shell --seed 2020020
(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)))