x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le 3.181957455920012970372053438428864888089 \cdot 10^{242}:\\
\;\;\;\;x + {\left(\left(t - x\right) \cdot \frac{y - z}{a - z}\right)}^{1}\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r142892 = x;
double r142893 = y;
double r142894 = z;
double r142895 = r142893 - r142894;
double r142896 = t;
double r142897 = r142896 - r142892;
double r142898 = a;
double r142899 = r142898 - r142894;
double r142900 = r142897 / r142899;
double r142901 = r142895 * r142900;
double r142902 = r142892 + r142901;
return r142902;
}
double f(double x, double y, double z, double t, double a) {
double r142903 = z;
double r142904 = 3.181957455920013e+242;
bool r142905 = r142903 <= r142904;
double r142906 = x;
double r142907 = t;
double r142908 = r142907 - r142906;
double r142909 = y;
double r142910 = r142909 - r142903;
double r142911 = a;
double r142912 = r142911 - r142903;
double r142913 = r142910 / r142912;
double r142914 = r142908 * r142913;
double r142915 = 1.0;
double r142916 = pow(r142914, r142915);
double r142917 = r142906 + r142916;
double r142918 = r142905 ? r142917 : r142907;
return r142918;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if z < 3.181957455920013e+242Initial program 13.9
rmApplied div-inv14.0
rmApplied pow114.0
Applied pow114.0
Applied pow-prod-down14.0
Applied pow114.0
Applied pow-prod-down14.0
Simplified13.9
rmApplied div-inv14.0
Applied associate-*l*11.2
Simplified11.1
if 3.181957455920013e+242 < z Initial program 32.9
rmApplied div-inv32.9
rmApplied pow132.9
Applied pow132.9
Applied pow-prod-down32.9
Applied pow132.9
Applied pow-prod-down32.9
Simplified32.9
Taylor expanded around 0 19.8
Final simplification11.7
herbie shell --seed 2019347
(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)))))