x + \frac{y \cdot \left(z - t\right)}{z - a}\begin{array}{l}
\mathbf{if}\;\frac{y \cdot \left(z - t\right)}{z - a} = -\infty:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\mathbf{elif}\;\frac{y \cdot \left(z - t\right)}{z - a} \le 2.886184098505586518165870377542885099677 \cdot 10^{246}:\\
\;\;\;\;x + \frac{y \cdot \left(z - t\right)}{z - a}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r109072075 = x;
double r109072076 = y;
double r109072077 = z;
double r109072078 = t;
double r109072079 = r109072077 - r109072078;
double r109072080 = r109072076 * r109072079;
double r109072081 = a;
double r109072082 = r109072077 - r109072081;
double r109072083 = r109072080 / r109072082;
double r109072084 = r109072075 + r109072083;
return r109072084;
}
double f(double x, double y, double z, double t, double a) {
double r109072085 = y;
double r109072086 = z;
double r109072087 = t;
double r109072088 = r109072086 - r109072087;
double r109072089 = r109072085 * r109072088;
double r109072090 = a;
double r109072091 = r109072086 - r109072090;
double r109072092 = r109072089 / r109072091;
double r109072093 = -inf.0;
bool r109072094 = r109072092 <= r109072093;
double r109072095 = x;
double r109072096 = r109072091 / r109072088;
double r109072097 = r109072085 / r109072096;
double r109072098 = r109072095 + r109072097;
double r109072099 = 2.8861840985055865e+246;
bool r109072100 = r109072092 <= r109072099;
double r109072101 = r109072095 + r109072092;
double r109072102 = r109072100 ? r109072101 : r109072098;
double r109072103 = r109072094 ? r109072098 : r109072102;
return r109072103;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.7 |
|---|---|
| Target | 1.4 |
| Herbie | 0.4 |
if (/ (* y (- z t)) (- z a)) < -inf.0 or 2.8861840985055865e+246 < (/ (* y (- z t)) (- z a)) Initial program 59.0
rmApplied associate-/l*1.2
if -inf.0 < (/ (* y (- z t)) (- z a)) < 2.8861840985055865e+246Initial program 0.2
Final simplification0.4
herbie shell --seed 2019173
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, A"
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (/ (* y (- z t)) (- z a))))