x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.987849100227200098981601290036999824698 \cdot 10^{115} \lor \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.497041979016212756171192164133352171743 \cdot 10^{-308} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 7.78731788031149956723511658898853039127 \cdot 10^{-291}\right)\right):\\
\;\;\;\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r105710 = x;
double r105711 = y;
double r105712 = z;
double r105713 = r105711 - r105712;
double r105714 = t;
double r105715 = r105714 - r105710;
double r105716 = a;
double r105717 = r105716 - r105712;
double r105718 = r105715 / r105717;
double r105719 = r105713 * r105718;
double r105720 = r105710 + r105719;
return r105720;
}
double f(double x, double y, double z, double t, double a) {
double r105721 = x;
double r105722 = y;
double r105723 = z;
double r105724 = r105722 - r105723;
double r105725 = t;
double r105726 = r105725 - r105721;
double r105727 = a;
double r105728 = r105727 - r105723;
double r105729 = r105726 / r105728;
double r105730 = r105724 * r105729;
double r105731 = r105721 + r105730;
double r105732 = -2.9878491002272e+115;
bool r105733 = r105731 <= r105732;
double r105734 = -2.497041979016213e-308;
bool r105735 = r105731 <= r105734;
double r105736 = 7.7873178803115e-291;
bool r105737 = r105731 <= r105736;
double r105738 = !r105737;
bool r105739 = r105735 || r105738;
bool r105740 = r105733 || r105739;
double r105741 = r105724 * r105726;
double r105742 = r105741 / r105728;
double r105743 = r105721 + r105742;
double r105744 = r105721 * r105722;
double r105745 = r105744 / r105723;
double r105746 = r105745 + r105725;
double r105747 = r105725 * r105722;
double r105748 = r105747 / r105723;
double r105749 = r105746 - r105748;
double r105750 = r105740 ? r105743 : r105749;
return r105750;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+ x (* (- y z) (/ (- t x) (- a z)))) < -2.9878491002272e+115 or 7.7873178803115e-291 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.5
if -2.9878491002272e+115 < (+ x (* (- y z) (/ (- t x) (- a z)))) < -2.497041979016213e-308Initial program 8.4
rmApplied associate-*r/6.6
if -2.497041979016213e-308 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 7.7873178803115e-291Initial program 61.3
Taylor expanded around inf 25.1
Final simplification19.2
herbie shell --seed 2019294
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
:precision binary64
(+ x (* (- y z) (/ (- t x) (- a z)))))