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 r115274 = x;
double r115275 = y;
double r115276 = z;
double r115277 = r115275 - r115276;
double r115278 = t;
double r115279 = r115278 - r115274;
double r115280 = a;
double r115281 = r115280 - r115276;
double r115282 = r115279 / r115281;
double r115283 = r115277 * r115282;
double r115284 = r115274 + r115283;
return r115284;
}
double f(double x, double y, double z, double t, double a) {
double r115285 = a;
double r115286 = -9.166122526810648e-164;
bool r115287 = r115285 <= r115286;
double r115288 = 1.0;
double r115289 = t;
double r115290 = x;
double r115291 = r115289 - r115290;
double r115292 = r115285 / r115291;
double r115293 = z;
double r115294 = r115293 / r115291;
double r115295 = r115292 - r115294;
double r115296 = r115288 / r115295;
double r115297 = y;
double r115298 = r115297 - r115293;
double r115299 = fma(r115296, r115298, r115290);
double r115300 = 2.816956044142362e-147;
bool r115301 = r115285 <= r115300;
double r115302 = r115290 * r115297;
double r115303 = r115302 / r115293;
double r115304 = r115303 + r115289;
double r115305 = r115289 * r115297;
double r115306 = r115305 / r115293;
double r115307 = r115304 - r115306;
double r115308 = r115285 - r115293;
double r115309 = r115288 / r115308;
double r115310 = r115288 / r115291;
double r115311 = r115309 / r115310;
double r115312 = fma(r115311, r115298, r115290);
double r115313 = r115301 ? r115307 : r115312;
double r115314 = r115287 ? r115299 : r115313;
return r115314;
}



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)))))