x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -2.346627508952012515207561082871188905248 \cdot 10^{-107}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{\left(a - z\right) \cdot \frac{1}{t - x}}, y - z, x\right)\\
\mathbf{elif}\;a \le 7.030593888359200932512090940955049716269 \cdot 10^{-71}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t - \frac{t \cdot y}{z}\right)\\
\mathbf{else}:\\
\;\;\;\;x + \left(y - z\right) \cdot \left(\left(t - x\right) \cdot \frac{1}{a - z}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r86962 = x;
double r86963 = y;
double r86964 = z;
double r86965 = r86963 - r86964;
double r86966 = t;
double r86967 = r86966 - r86962;
double r86968 = a;
double r86969 = r86968 - r86964;
double r86970 = r86967 / r86969;
double r86971 = r86965 * r86970;
double r86972 = r86962 + r86971;
return r86972;
}
double f(double x, double y, double z, double t, double a) {
double r86973 = a;
double r86974 = -2.3466275089520125e-107;
bool r86975 = r86973 <= r86974;
double r86976 = 1.0;
double r86977 = z;
double r86978 = r86973 - r86977;
double r86979 = t;
double r86980 = x;
double r86981 = r86979 - r86980;
double r86982 = r86976 / r86981;
double r86983 = r86978 * r86982;
double r86984 = r86976 / r86983;
double r86985 = y;
double r86986 = r86985 - r86977;
double r86987 = fma(r86984, r86986, r86980);
double r86988 = 7.030593888359201e-71;
bool r86989 = r86973 <= r86988;
double r86990 = r86980 / r86977;
double r86991 = r86979 * r86985;
double r86992 = r86991 / r86977;
double r86993 = r86979 - r86992;
double r86994 = fma(r86990, r86985, r86993);
double r86995 = r86976 / r86978;
double r86996 = r86981 * r86995;
double r86997 = r86986 * r86996;
double r86998 = r86980 + r86997;
double r86999 = r86989 ? r86994 : r86998;
double r87000 = r86975 ? r86987 : r86999;
return r87000;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -2.3466275089520125e-107Initial program 11.8
Simplified11.7
rmApplied clear-num11.9
rmApplied div-inv12.0
if -2.3466275089520125e-107 < a < 7.030593888359201e-71Initial program 24.8
Taylor expanded around inf 17.1
Simplified16.6
if 7.030593888359201e-71 < a Initial program 9.3
rmApplied div-inv9.4
Final simplification12.5
herbie shell --seed 2019326 +o rules:numerics
(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)))))