x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -9.16612252681064813 \cdot 10^{-164}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{\frac{a}{t - x} - \frac{z}{t - x}}, y - z, x\right)\\
\mathbf{elif}\;a \le 2.8169560441423619 \cdot 10^{-147}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{\frac{1}{a - z}}{\frac{1}{t - x}}, y - z, x\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r117607 = x;
double r117608 = y;
double r117609 = z;
double r117610 = r117608 - r117609;
double r117611 = t;
double r117612 = r117611 - r117607;
double r117613 = a;
double r117614 = r117613 - r117609;
double r117615 = r117612 / r117614;
double r117616 = r117610 * r117615;
double r117617 = r117607 + r117616;
return r117617;
}
double f(double x, double y, double z, double t, double a) {
double r117618 = a;
double r117619 = -9.166122526810648e-164;
bool r117620 = r117618 <= r117619;
double r117621 = 1.0;
double r117622 = t;
double r117623 = x;
double r117624 = r117622 - r117623;
double r117625 = r117618 / r117624;
double r117626 = z;
double r117627 = r117626 / r117624;
double r117628 = r117625 - r117627;
double r117629 = r117621 / r117628;
double r117630 = y;
double r117631 = r117630 - r117626;
double r117632 = fma(r117629, r117631, r117623);
double r117633 = 2.816956044142362e-147;
bool r117634 = r117618 <= r117633;
double r117635 = r117623 * r117630;
double r117636 = r117635 / r117626;
double r117637 = r117636 + r117622;
double r117638 = r117622 * r117630;
double r117639 = r117638 / r117626;
double r117640 = r117637 - r117639;
double r117641 = r117618 - r117626;
double r117642 = r117621 / r117641;
double r117643 = r117621 / r117624;
double r117644 = r117642 / r117643;
double r117645 = fma(r117644, r117631, r117623);
double r117646 = r117634 ? r117640 : r117645;
double r117647 = r117620 ? r117632 : r117646;
return r117647;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -9.166122526810648e-164Initial program 12.3
Simplified12.3
rmApplied clear-num12.5
rmApplied div-sub12.7
if -9.166122526810648e-164 < a < 2.816956044142362e-147Initial program 24.5
Taylor expanded around inf 13.1
if 2.816956044142362e-147 < a Initial program 11.2
Simplified11.2
rmApplied clear-num11.5
rmApplied div-inv11.5
Applied associate-/r*11.3
Final simplification12.3
herbie shell --seed 2020042 +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)))))