x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.52100105036061421 \cdot 10^{-168}:\\
\;\;\;\;x + \left(y - z\right) \cdot \left(\left(t - x\right) \cdot \frac{1}{a - z}\right)\\
\mathbf{elif}\;a \le 3.6850404799821675 \cdot 10^{-175}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t - \frac{t \cdot y}{z}\right)\\
\mathbf{elif}\;a \le 4.82832697489963789 \cdot 10^{36}:\\
\;\;\;\;x + \frac{\left(t - x\right) \cdot \left(y - z\right)}{a - z}\\
\mathbf{else}:\\
\;\;\;\;x + \left(y - z\right) \cdot \left(\left(t - x\right) \cdot \frac{1}{a - z}\right)\\
\end{array}double code(double x, double y, double z, double t, double a) {
return (x + ((y - z) * ((t - x) / (a - z))));
}
double code(double x, double y, double z, double t, double a) {
double temp;
if ((a <= -1.5210010503606142e-168)) {
temp = (x + ((y - z) * ((t - x) * (1.0 / (a - z)))));
} else {
double temp_1;
if ((a <= 3.6850404799821675e-175)) {
temp_1 = fma((x / z), y, (t - ((t * y) / z)));
} else {
double temp_2;
if ((a <= 4.828326974899638e+36)) {
temp_2 = (x + (((t - x) * (y - z)) / (a - z)));
} else {
temp_2 = (x + ((y - z) * ((t - x) * (1.0 / (a - z)))));
}
temp_1 = temp_2;
}
temp = temp_1;
}
return temp;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -1.5210010503606142e-168 or 4.828326974899638e+36 < a Initial program 10.1
rmApplied div-inv10.1
if -1.5210010503606142e-168 < a < 3.6850404799821675e-175Initial program 27.1
Taylor expanded around inf 12.1
Simplified11.8
if 3.6850404799821675e-175 < a < 4.828326974899638e+36Initial program 19.1
rmApplied div-inv19.1
rmApplied add-cube-cbrt19.6
Applied associate-*l*19.7
Simplified19.7
rmApplied associate-*l/19.8
Applied associate-*r/23.2
Simplified22.7
Final simplification12.5
herbie shell --seed 2020066 +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)))))