\frac{x \cdot \left(y - z\right)}{t - z}\begin{array}{l}
\mathbf{if}\;z \le -1.04150968945594362 \cdot 10^{-92} \lor \neg \left(z \le 3.5380098935821607 \cdot 10^{-206}\right):\\
\;\;\;\;\frac{x}{\frac{t - z}{y - z}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{t - z}}{\frac{1}{y - z}}\\
\end{array}double code(double x, double y, double z, double t) {
return ((double) (((double) (x * ((double) (y - z)))) / ((double) (t - z))));
}
double code(double x, double y, double z, double t) {
double VAR;
if (((z <= -1.0415096894559436e-92) || !(z <= 3.5380098935821607e-206))) {
VAR = ((double) (x / ((double) (((double) (t - z)) / ((double) (y - z))))));
} else {
VAR = ((double) (((double) (x / ((double) (t - z)))) / ((double) (1.0 / ((double) (y - z))))));
}
return VAR;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.4 |
|---|---|
| Target | 2.2 |
| Herbie | 2.2 |
if z < -1.04150968945594362e-92 or 3.5380098935821607e-206 < z Initial program 13.1
rmApplied associate-/l*1.1
if -1.04150968945594362e-92 < z < 3.5380098935821607e-206Initial program 5.8
rmApplied associate-/l*6.0
rmApplied div-inv6.1
Applied associate-/r*5.8
Final simplification2.2
herbie shell --seed 2020168
(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)))