x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -4.566794582426086766953000029549497615298 \cdot 10^{-156}:\\
\;\;\;\;\mathsf{fma}\left(t - x, \frac{1}{\frac{a - z}{y - z}}, x\right)\\
\mathbf{elif}\;a \le 7.692781660197598904440558192035913736358 \cdot 10^{-150}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t - \frac{t \cdot y}{z}\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y - z}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r112235 = x;
double r112236 = y;
double r112237 = z;
double r112238 = r112236 - r112237;
double r112239 = t;
double r112240 = r112239 - r112235;
double r112241 = a;
double r112242 = r112241 - r112237;
double r112243 = r112240 / r112242;
double r112244 = r112238 * r112243;
double r112245 = r112235 + r112244;
return r112245;
}
double f(double x, double y, double z, double t, double a) {
double r112246 = a;
double r112247 = -4.566794582426087e-156;
bool r112248 = r112246 <= r112247;
double r112249 = t;
double r112250 = x;
double r112251 = r112249 - r112250;
double r112252 = 1.0;
double r112253 = z;
double r112254 = r112246 - r112253;
double r112255 = y;
double r112256 = r112255 - r112253;
double r112257 = r112254 / r112256;
double r112258 = r112252 / r112257;
double r112259 = fma(r112251, r112258, r112250);
double r112260 = 7.692781660197599e-150;
bool r112261 = r112246 <= r112260;
double r112262 = r112250 / r112253;
double r112263 = r112249 * r112255;
double r112264 = r112263 / r112253;
double r112265 = r112249 - r112264;
double r112266 = fma(r112262, r112255, r112265);
double r112267 = r112251 / r112257;
double r112268 = r112250 + r112267;
double r112269 = r112261 ? r112266 : r112268;
double r112270 = r112248 ? r112259 : r112269;
return r112270;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -4.566794582426087e-156Initial program 11.5
Simplified11.5
rmApplied fma-udef11.5
rmApplied div-inv11.6
Applied associate-*l*9.0
Simplified9.0
rmApplied clear-num9.1
rmApplied fma-def9.1
if -4.566794582426087e-156 < a < 7.692781660197599e-150Initial program 25.7
Simplified25.7
rmApplied fma-udef25.7
rmApplied div-inv25.8
Applied associate-*l*20.6
Simplified20.6
Taylor expanded around inf 12.5
Simplified12.3
if 7.692781660197599e-150 < a Initial program 11.9
Simplified11.9
rmApplied fma-udef11.9
rmApplied div-inv12.0
Applied associate-*l*9.4
Simplified9.3
rmApplied clear-num9.4
rmApplied pow19.4
Applied pow19.4
Applied pow-prod-down9.4
Simplified9.4
Final simplification9.9
herbie shell --seed 2019303 +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)))))