x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le -5.6084778564962155 \cdot 10^{+104}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t\right) - \frac{t}{z} \cdot y\\
\mathbf{elif}\;z \le 6.562213605057352 \cdot 10^{+178}:\\
\;\;\;\;\mathsf{fma}\left(y - z, \frac{t - x}{a - z}, x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t\right) - \frac{t}{z} \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r6400678 = x;
double r6400679 = y;
double r6400680 = z;
double r6400681 = r6400679 - r6400680;
double r6400682 = t;
double r6400683 = r6400682 - r6400678;
double r6400684 = a;
double r6400685 = r6400684 - r6400680;
double r6400686 = r6400683 / r6400685;
double r6400687 = r6400681 * r6400686;
double r6400688 = r6400678 + r6400687;
return r6400688;
}
double f(double x, double y, double z, double t, double a) {
double r6400689 = z;
double r6400690 = -5.6084778564962155e+104;
bool r6400691 = r6400689 <= r6400690;
double r6400692 = x;
double r6400693 = r6400692 / r6400689;
double r6400694 = y;
double r6400695 = t;
double r6400696 = fma(r6400693, r6400694, r6400695);
double r6400697 = r6400695 / r6400689;
double r6400698 = r6400697 * r6400694;
double r6400699 = r6400696 - r6400698;
double r6400700 = 6.562213605057352e+178;
bool r6400701 = r6400689 <= r6400700;
double r6400702 = r6400694 - r6400689;
double r6400703 = r6400695 - r6400692;
double r6400704 = a;
double r6400705 = r6400704 - r6400689;
double r6400706 = r6400703 / r6400705;
double r6400707 = fma(r6400702, r6400706, r6400692);
double r6400708 = r6400701 ? r6400707 : r6400699;
double r6400709 = r6400691 ? r6400699 : r6400708;
return r6400709;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if z < -5.6084778564962155e+104 or 6.562213605057352e+178 < z Initial program 26.8
Simplified26.7
rmApplied fma-udef26.8
Taylor expanded around inf 24.8
Simplified17.0
if -5.6084778564962155e+104 < z < 6.562213605057352e+178Initial program 9.1
Simplified9.0
rmApplied fma-udef9.1
rmApplied fma-def9.0
Final simplification11.4
herbie shell --seed 2019163 +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)))))