x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -1.0532464204699888 \cdot 10^{+209}:\\
\;\;\;\;y \cdot \frac{x}{z}\\
\mathbf{elif}\;\frac{y}{z} \le -6.588547053565423 \cdot 10^{-193}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\mathbf{elif}\;\frac{y}{z} \le 2.2740014914314757 \cdot 10^{-89}:\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{z} \cdot x\\
\end{array}double f(double x, double y, double z, double t) {
double r2650279 = x;
double r2650280 = y;
double r2650281 = z;
double r2650282 = r2650280 / r2650281;
double r2650283 = t;
double r2650284 = r2650282 * r2650283;
double r2650285 = r2650284 / r2650283;
double r2650286 = r2650279 * r2650285;
return r2650286;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r2650287 = y;
double r2650288 = z;
double r2650289 = r2650287 / r2650288;
double r2650290 = -1.0532464204699888e+209;
bool r2650291 = r2650289 <= r2650290;
double r2650292 = x;
double r2650293 = r2650292 / r2650288;
double r2650294 = r2650287 * r2650293;
double r2650295 = -6.588547053565423e-193;
bool r2650296 = r2650289 <= r2650295;
double r2650297 = r2650289 * r2650292;
double r2650298 = 2.2740014914314757e-89;
bool r2650299 = r2650289 <= r2650298;
double r2650300 = r2650292 * r2650287;
double r2650301 = r2650300 / r2650288;
double r2650302 = r2650299 ? r2650301 : r2650297;
double r2650303 = r2650296 ? r2650297 : r2650302;
double r2650304 = r2650291 ? r2650294 : r2650303;
return r2650304;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -1.0532464204699888e+209Initial program 40.4
Simplified0.4
if -1.0532464204699888e+209 < (/ y z) < -6.588547053565423e-193 or 2.2740014914314757e-89 < (/ y z) Initial program 11.1
Simplified8.8
rmApplied div-inv8.9
Applied associate-*l*2.9
Simplified2.8
if -6.588547053565423e-193 < (/ y z) < 2.2740014914314757e-89Initial program 15.7
Simplified1.4
rmApplied div-inv1.5
Applied associate-*l*8.2
Simplified8.1
rmApplied *-un-lft-identity8.1
Applied add-cube-cbrt8.6
Applied times-frac8.6
Applied associate-*r*2.8
Simplified2.8
rmApplied associate-*r/2.2
Simplified1.6
Final simplification2.2
herbie shell --seed 2019152 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))