x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -2.0863673875242188 \cdot 10^{-71}:\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y - z}}\\
\mathbf{elif}\;a \le 1.81963273460724978 \cdot 10^{-125}:\\
\;\;\;\;t + \frac{y}{z} \cdot \left(x - t\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\\
\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 <= -2.0863673875242188e-71)) {
VAR = ((double) (x + ((double) (((double) (t - x)) / ((double) (((double) (a - z)) / ((double) (y - z))))))));
} else {
double VAR_1;
if ((a <= 1.8196327346072498e-125)) {
VAR_1 = ((double) (t + ((double) (((double) (y / z)) * ((double) (x - t))))));
} else {
VAR_1 = ((double) (x + ((double) (((double) (((double) (y - z)) / ((double) (((double) cbrt(((double) (a - z)))) * ((double) cbrt(((double) (a - z)))))))) * ((double) (((double) (t - x)) / ((double) cbrt(((double) (a - z))))))))));
}
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 < -2.0863673875242188e-71Initial program 10.3
rmApplied add-cube-cbrt10.7
Applied *-un-lft-identity10.7
Applied times-frac10.7
Applied associate-*r*8.8
Simplified8.8
rmApplied pow18.8
Applied pow18.8
Applied pow-prod-down8.8
Simplified8.3
rmApplied clear-num8.4
rmApplied associate-*l/8.3
Simplified8.3
if -2.0863673875242188e-71 < a < 1.81963273460724978e-125Initial program 24.8
Taylor expanded around inf 15.8
Simplified11.5
if 1.81963273460724978e-125 < a Initial program 11.4
rmApplied add-cube-cbrt11.9
Applied *-un-lft-identity11.9
Applied times-frac11.9
Applied associate-*r*9.7
Simplified9.7
Final simplification9.8
herbie shell --seed 2020179
(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)))))