x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -6.70601397749614666 \cdot 10^{-149} \lor \neg \left(a \le 2.1567847010867933 \cdot 10^{-199}\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 <= -6.706013977496147e-149) || !(a <= 2.1567847010867933e-199))) {
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 < -6.706013977496147e-149 or 2.1567847010867933e-199 < a Initial program 11.9
rmApplied div-inv11.9
rmApplied *-commutative11.9
Applied associate-*r*9.6
Simplified9.5
if -6.706013977496147e-149 < a < 2.1567847010867933e-199Initial program 26.4
Simplified26.4
Taylor expanded around inf 11.5
Simplified8.2
Final simplification9.3
herbie shell --seed 2020078 +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)))))