\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 r26185935 = x;
double r26185936 = y;
double r26185937 = z;
double r26185938 = r26185936 - r26185937;
double r26185939 = r26185935 * r26185938;
double r26185940 = t;
double r26185941 = r26185940 - r26185937;
double r26185942 = r26185939 / r26185941;
return r26185942;
}
double f(double x, double y, double z, double t) {
double r26185943 = y;
double r26185944 = z;
double r26185945 = r26185943 - r26185944;
double r26185946 = x;
double r26185947 = r26185945 * r26185946;
double r26185948 = t;
double r26185949 = r26185948 - r26185944;
double r26185950 = r26185947 / r26185949;
double r26185951 = 3.016949263831516e-301;
bool r26185952 = r26185950 <= r26185951;
double r26185953 = r26185949 / r26185945;
double r26185954 = r26185946 / r26185953;
double r26185955 = 5.367760633924734e+261;
bool r26185956 = r26185950 <= r26185955;
double r26185957 = r26185945 / r26185949;
double r26185958 = r26185946 * r26185957;
double r26185959 = r26185956 ? r26185950 : r26185958;
double r26185960 = r26185952 ? r26185954 : r26185959;
return r26185960;
}




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 +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)))