\frac{x \cdot \left(y - z\right)}{t - z}\begin{array}{l}
\mathbf{if}\;\frac{\left(y - z\right) \cdot x}{t - z} \le 3.016949263831516 \cdot 10^{-301}:\\
\;\;\;\;\frac{x}{\frac{t - z}{y - z}}\\
\mathbf{elif}\;\frac{\left(y - z\right) \cdot x}{t - z} \le 5.367760633924734 \cdot 10^{+261}:\\
\;\;\;\;\frac{\left(y - z\right) \cdot x}{t - z}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{y - z}{t - z}\\
\end{array}double f(double x, double y, double z, double t) {
double r32922451 = x;
double r32922452 = y;
double r32922453 = z;
double r32922454 = r32922452 - r32922453;
double r32922455 = r32922451 * r32922454;
double r32922456 = t;
double r32922457 = r32922456 - r32922453;
double r32922458 = r32922455 / r32922457;
return r32922458;
}
double f(double x, double y, double z, double t) {
double r32922459 = y;
double r32922460 = z;
double r32922461 = r32922459 - r32922460;
double r32922462 = x;
double r32922463 = r32922461 * r32922462;
double r32922464 = t;
double r32922465 = r32922464 - r32922460;
double r32922466 = r32922463 / r32922465;
double r32922467 = 3.016949263831516e-301;
bool r32922468 = r32922466 <= r32922467;
double r32922469 = r32922465 / r32922461;
double r32922470 = r32922462 / r32922469;
double r32922471 = 5.367760633924734e+261;
bool r32922472 = r32922466 <= r32922471;
double r32922473 = r32922461 / r32922465;
double r32922474 = r32922462 * r32922473;
double r32922475 = r32922472 ? r32922466 : r32922474;
double r32922476 = r32922468 ? r32922470 : r32922475;
return r32922476;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.1 |
|---|---|
| Target | 2.1 |
| Herbie | 1.3 |
if (/ (* x (- y z)) (- t z)) < 3.016949263831516e-301Initial program 10.9
rmApplied associate-/l*1.9
if 3.016949263831516e-301 < (/ (* x (- y z)) (- t z)) < 5.367760633924734e+261Initial program 0.3
if 5.367760633924734e+261 < (/ (* x (- y z)) (- t z)) Initial program 53.2
rmApplied *-un-lft-identity53.2
Applied times-frac1.4
Simplified1.4
Final simplification1.3
herbie shell --seed 2019163
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:herbie-target
(/ x (/ (- t z) (- y z)))
(/ (* x (- y z)) (- t z)))