x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le 3.272611520635528 \cdot 10^{-272}:\\
\;\;\;\;x + \frac{1}{\frac{a - z}{y - z}} \cdot \left(t - x\right)\\
\mathbf{elif}\;a \le 4.37670897524239548 \cdot 10^{-228}:\\
\;\;\;\;t + y \cdot \left(\frac{x}{z} - \frac{t}{z}\right)\\
\mathbf{elif}\;a \le 1.429293235495582 \cdot 10^{-120} \lor \neg \left(a \le 7.830320865923943 \cdot 10^{-79}\right):\\
\;\;\;\;x + \frac{1}{\frac{a - z}{y - z}} \cdot \left(t - x\right)\\
\mathbf{else}:\\
\;\;\;\;t + \frac{y}{z} \cdot \left(x - t\right)\\
\end{array}double code(double x, double y, double z, double t, double a) {
return ((double) (x + ((double) (((double) (y - z)) * ((double) (((double) (t - x)) / ((double) (a - z))))))));
}
double code(double x, double y, double z, double t, double a) {
double VAR;
if ((a <= 3.2726115206355276e-272)) {
VAR = ((double) (x + ((double) (((double) (1.0 / ((double) (((double) (a - z)) / ((double) (y - z)))))) * ((double) (t - x))))));
} else {
double VAR_1;
if ((a <= 4.3767089752423955e-228)) {
VAR_1 = ((double) (t + ((double) (y * ((double) (((double) (x / z)) - ((double) (t / z))))))));
} else {
double VAR_2;
if (((a <= 1.429293235495582e-120) || !(a <= 7.830320865923943e-79))) {
VAR_2 = ((double) (x + ((double) (((double) (1.0 / ((double) (((double) (a - z)) / ((double) (y - z)))))) * ((double) (t - x))))));
} else {
VAR_2 = ((double) (t + ((double) (((double) (y / z)) * ((double) (x - t))))));
}
VAR_1 = VAR_2;
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < 3.272611520635528e-272 or 4.37670897524239548e-228 < a < 1.429293235495582e-120 or 7.830320865923943e-79 < a Initial program 14.2
rmApplied add-cube-cbrt14.7
Applied *-un-lft-identity14.7
Applied times-frac14.8
Applied associate-*r*12.2
Simplified12.2
rmApplied pow112.2
Applied pow112.2
Applied pow-prod-down12.2
Simplified11.2
rmApplied clear-num11.3
if 3.272611520635528e-272 < a < 4.37670897524239548e-228Initial program 23.4
rmApplied add-cube-cbrt24.2
Applied add-cube-cbrt24.4
Applied times-frac24.3
Applied associate-*r*21.5
Simplified21.5
Taylor expanded around inf 11.7
Simplified5.7
if 1.429293235495582e-120 < a < 7.830320865923943e-79Initial program 21.4
Taylor expanded around inf 24.6
Simplified19.5
Final simplification11.3
herbie shell --seed 2020181
(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)))))