x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le 4.414999570783422340397446628721574989275 \cdot 10^{213}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{a - z} \cdot \left(t - x\right), y - z, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r4587535 = x;
double r4587536 = y;
double r4587537 = z;
double r4587538 = r4587536 - r4587537;
double r4587539 = t;
double r4587540 = r4587539 - r4587535;
double r4587541 = a;
double r4587542 = r4587541 - r4587537;
double r4587543 = r4587540 / r4587542;
double r4587544 = r4587538 * r4587543;
double r4587545 = r4587535 + r4587544;
return r4587545;
}
double f(double x, double y, double z, double t, double a) {
double r4587546 = z;
double r4587547 = 4.4149995707834223e+213;
bool r4587548 = r4587546 <= r4587547;
double r4587549 = 1.0;
double r4587550 = a;
double r4587551 = r4587550 - r4587546;
double r4587552 = r4587549 / r4587551;
double r4587553 = t;
double r4587554 = x;
double r4587555 = r4587553 - r4587554;
double r4587556 = r4587552 * r4587555;
double r4587557 = y;
double r4587558 = r4587557 - r4587546;
double r4587559 = fma(r4587556, r4587558, r4587554);
double r4587560 = r4587548 ? r4587559 : r4587553;
return r4587560;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if z < 4.4149995707834223e+213Initial program 12.9
Simplified12.8
rmApplied div-inv12.9
if 4.4149995707834223e+213 < z Initial program 32.1
Simplified32.0
Taylor expanded around 0 23.6
Final simplification13.9
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))