\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;t \le -3.882750870169282 \cdot 10^{+54}:\\
\;\;\;\;x + \left(y - \left(y \cdot \frac{1}{a - t}\right) \cdot \left(z - t\right)\right)\\
\mathbf{elif}\;t \le 5.8516997634450565 \cdot 10^{+103}:\\
\;\;\;\;x + \left(y - \frac{\left(z - t\right) \cdot y}{a - t}\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y \cdot z}{t}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r27553939 = x;
double r27553940 = y;
double r27553941 = r27553939 + r27553940;
double r27553942 = z;
double r27553943 = t;
double r27553944 = r27553942 - r27553943;
double r27553945 = r27553944 * r27553940;
double r27553946 = a;
double r27553947 = r27553946 - r27553943;
double r27553948 = r27553945 / r27553947;
double r27553949 = r27553941 - r27553948;
return r27553949;
}
double f(double x, double y, double z, double t, double a) {
double r27553950 = t;
double r27553951 = -3.882750870169282e+54;
bool r27553952 = r27553950 <= r27553951;
double r27553953 = x;
double r27553954 = y;
double r27553955 = 1.0;
double r27553956 = a;
double r27553957 = r27553956 - r27553950;
double r27553958 = r27553955 / r27553957;
double r27553959 = r27553954 * r27553958;
double r27553960 = z;
double r27553961 = r27553960 - r27553950;
double r27553962 = r27553959 * r27553961;
double r27553963 = r27553954 - r27553962;
double r27553964 = r27553953 + r27553963;
double r27553965 = 5.8516997634450565e+103;
bool r27553966 = r27553950 <= r27553965;
double r27553967 = r27553961 * r27553954;
double r27553968 = r27553967 / r27553957;
double r27553969 = r27553954 - r27553968;
double r27553970 = r27553953 + r27553969;
double r27553971 = r27553954 * r27553960;
double r27553972 = r27553971 / r27553950;
double r27553973 = r27553953 + r27553972;
double r27553974 = r27553966 ? r27553970 : r27553973;
double r27553975 = r27553952 ? r27553964 : r27553974;
return r27553975;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 15.8 |
|---|---|
| Target | 8.3 |
| Herbie | 10.4 |
if t < -3.882750870169282e+54Initial program 26.7
rmApplied associate--l+22.7
rmApplied *-un-lft-identity22.7
Applied times-frac12.7
Simplified12.7
rmApplied div-inv13.8
if -3.882750870169282e+54 < t < 5.8516997634450565e+103Initial program 7.6
rmApplied associate--l+6.9
if 5.8516997634450565e+103 < t Initial program 30.7
rmApplied associate--l+26.7
Taylor expanded around inf 18.3
Final simplification10.4
herbie shell --seed 2019162
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, B"
:herbie-target
(if (< (- (+ x y) (/ (* (- z t) y) (- a t))) -1.3664970889390727e-07) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y)) (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) 1.4754293444577233e-239) (/ (- (* y (- a z)) (* x t)) (- a t)) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y))))
(- (+ x y) (/ (* (- z t) y) (- a t))))