\frac{x \cdot \left(y - z\right)}{t - z}\begin{array}{l}
\mathbf{if}\;z \le -7.5411015698060821 \cdot 10^{-184} \lor \neg \left(z \le 2.77988840679091214 \cdot 10^{-239}\right):\\
\;\;\;\;x \cdot \frac{y - z}{t - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{t - z} \cdot \left(x \cdot \left(y - z\right)\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r709654 = x;
double r709655 = y;
double r709656 = z;
double r709657 = r709655 - r709656;
double r709658 = r709654 * r709657;
double r709659 = t;
double r709660 = r709659 - r709656;
double r709661 = r709658 / r709660;
return r709661;
}
double f(double x, double y, double z, double t) {
double r709662 = z;
double r709663 = -7.541101569806082e-184;
bool r709664 = r709662 <= r709663;
double r709665 = 2.779888406790912e-239;
bool r709666 = r709662 <= r709665;
double r709667 = !r709666;
bool r709668 = r709664 || r709667;
double r709669 = x;
double r709670 = y;
double r709671 = r709670 - r709662;
double r709672 = t;
double r709673 = r709672 - r709662;
double r709674 = r709671 / r709673;
double r709675 = r709669 * r709674;
double r709676 = 1.0;
double r709677 = r709676 / r709673;
double r709678 = r709669 * r709671;
double r709679 = r709677 * r709678;
double r709680 = r709668 ? r709675 : r709679;
return r709680;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 12.0 |
|---|---|
| Target | 2.4 |
| Herbie | 2.4 |
if z < -7.541101569806082e-184 or 2.779888406790912e-239 < z Initial program 12.8
rmApplied *-un-lft-identity12.8
Applied times-frac1.6
Simplified1.6
if -7.541101569806082e-184 < z < 2.779888406790912e-239Initial program 7.2
rmApplied associate-/l*7.0
rmApplied div-inv7.1
Applied *-un-lft-identity7.1
Applied times-frac7.3
Simplified7.3
Final simplification2.4
herbie shell --seed 2020083 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:precision binary64
:herbie-target
(/ x (/ (- t z) (- y z)))
(/ (* x (- y z)) (- t z)))