\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 r31756437 = x;
double r31756438 = y;
double r31756439 = z;
double r31756440 = r31756438 - r31756439;
double r31756441 = r31756437 * r31756440;
double r31756442 = t;
double r31756443 = r31756442 - r31756439;
double r31756444 = r31756441 / r31756443;
return r31756444;
}
double f(double x, double y, double z, double t) {
double r31756445 = y;
double r31756446 = z;
double r31756447 = r31756445 - r31756446;
double r31756448 = x;
double r31756449 = r31756447 * r31756448;
double r31756450 = t;
double r31756451 = r31756450 - r31756446;
double r31756452 = r31756449 / r31756451;
double r31756453 = 3.016949263831516e-301;
bool r31756454 = r31756452 <= r31756453;
double r31756455 = r31756451 / r31756447;
double r31756456 = r31756448 / r31756455;
double r31756457 = 5.367760633924734e+261;
bool r31756458 = r31756452 <= r31756457;
double r31756459 = r31756447 / r31756451;
double r31756460 = r31756448 * r31756459;
double r31756461 = r31756458 ? r31756452 : r31756460;
double r31756462 = r31756454 ? r31756456 : r31756461;
return r31756462;
}




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
rmApplied *-un-lft-identity0.3
Applied times-frac2.6
Simplified2.6
rmApplied associate-*r/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 +o rules:numerics
(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)))