x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -9.88656814146117223 \cdot 10^{-154} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 4.73247773315875748 \cdot 10^{-210}\right):\\
\;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{x}{z} - \frac{t}{z}, 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 temp;
if ((((x + ((y - z) * ((t - x) / (a - z)))) <= -9.886568141461172e-154) || !((x + ((y - z) * ((t - x) / (a - z)))) <= 4.7324777331587575e-210))) {
temp = (x + ((y - z) * ((t - x) / (a - z))));
} else {
temp = fma(y, ((x / z) - (t / z)), t);
}
return temp;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+ x (* (- y z) (/ (- t x) (- a z)))) < -9.886568141461172e-154 or 4.7324777331587575e-210 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 6.1
if -9.886568141461172e-154 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 4.7324777331587575e-210Initial program 50.4
Simplified50.1
Taylor expanded around inf 29.8
Simplified27.2
Final simplification10.2
herbie shell --seed 2020060 +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)))))