x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.62481979804116916 \cdot 10^{-65} \lor \neg \left(a \le 8.4419397230353166 \cdot 10^{-100}\right):\\
\;\;\;\;x + \frac{y - z}{a - z} \cdot \left(t - x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{z}, x - t, t\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 VAR;
if (((a <= -1.6248197980411692e-65) || !(a <= 8.441939723035317e-100))) {
VAR = (x + (((y - z) / (a - z)) * (t - x)));
} else {
VAR = fma((y / z), (x - t), t);
}
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 < -1.6248197980411692e-65 or 8.441939723035317e-100 < a Initial program 10.3
rmApplied div-inv10.4
rmApplied *-commutative10.4
Applied associate-*r*8.2
Simplified8.1
if -1.6248197980411692e-65 < a < 8.441939723035317e-100Initial program 24.2
Simplified24.2
Taylor expanded around inf 17.6
Simplified12.5
Final simplification9.5
herbie shell --seed 2020071 +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)))))