\frac{x \cdot \left(y - z\right)}{t - z}\begin{array}{l}
\mathbf{if}\;\frac{\left(y - z\right) \cdot x}{t - z} = -\infty:\\
\;\;\;\;x \cdot \frac{y - z}{t - z}\\
\mathbf{elif}\;\frac{\left(y - z\right) \cdot x}{t - z} \le -1.426882217422760647491241614519693519843 \cdot 10^{-216}:\\
\;\;\;\;\frac{\left(y - z\right) \cdot x}{t - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{1}{y - z} \cdot \left(t - z\right)}\\
\end{array}double f(double x, double y, double z, double t) {
double r22788828 = x;
double r22788829 = y;
double r22788830 = z;
double r22788831 = r22788829 - r22788830;
double r22788832 = r22788828 * r22788831;
double r22788833 = t;
double r22788834 = r22788833 - r22788830;
double r22788835 = r22788832 / r22788834;
return r22788835;
}
double f(double x, double y, double z, double t) {
double r22788836 = y;
double r22788837 = z;
double r22788838 = r22788836 - r22788837;
double r22788839 = x;
double r22788840 = r22788838 * r22788839;
double r22788841 = t;
double r22788842 = r22788841 - r22788837;
double r22788843 = r22788840 / r22788842;
double r22788844 = -inf.0;
bool r22788845 = r22788843 <= r22788844;
double r22788846 = r22788838 / r22788842;
double r22788847 = r22788839 * r22788846;
double r22788848 = -1.4268822174227606e-216;
bool r22788849 = r22788843 <= r22788848;
double r22788850 = 1.0;
double r22788851 = r22788850 / r22788838;
double r22788852 = r22788851 * r22788842;
double r22788853 = r22788839 / r22788852;
double r22788854 = r22788849 ? r22788843 : r22788853;
double r22788855 = r22788845 ? r22788847 : r22788854;
return r22788855;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.8 |
|---|---|
| Target | 2.3 |
| Herbie | 1.5 |
if (/ (* x (- y z)) (- t z)) < -inf.0Initial program 64.0
rmApplied *-un-lft-identity64.0
Applied times-frac0.1
Simplified0.1
if -inf.0 < (/ (* x (- y z)) (- t z)) < -1.4268822174227606e-216Initial program 0.3
rmApplied *-un-lft-identity0.3
Applied times-frac3.1
Simplified3.1
rmApplied associate-*r/0.3
if -1.4268822174227606e-216 < (/ (* x (- y z)) (- t z)) Initial program 10.0
rmApplied associate-/l*2.2
rmApplied div-inv2.3
Final simplification1.5
herbie shell --seed 2019169 +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)))