x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.997543300824516967451174039616744917242 \cdot 10^{-131}:\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\
\mathbf{elif}\;a \le 3.148145590460313919036522755186967820726 \cdot 10^{-195}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \left(t - x\right) \cdot \frac{y - z}{a - z}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r140423 = x;
double r140424 = y;
double r140425 = z;
double r140426 = r140424 - r140425;
double r140427 = t;
double r140428 = r140427 - r140423;
double r140429 = a;
double r140430 = r140429 - r140425;
double r140431 = r140428 / r140430;
double r140432 = r140426 * r140431;
double r140433 = r140423 + r140432;
return r140433;
}
double f(double x, double y, double z, double t, double a) {
double r140434 = a;
double r140435 = -1.997543300824517e-131;
bool r140436 = r140434 <= r140435;
double r140437 = x;
double r140438 = y;
double r140439 = z;
double r140440 = r140438 - r140439;
double r140441 = cbrt(r140440);
double r140442 = r140441 * r140441;
double r140443 = r140434 - r140439;
double r140444 = cbrt(r140443);
double r140445 = r140442 / r140444;
double r140446 = r140441 / r140444;
double r140447 = r140444 * r140444;
double r140448 = cbrt(r140447);
double r140449 = r140446 / r140448;
double r140450 = t;
double r140451 = r140450 - r140437;
double r140452 = cbrt(r140444);
double r140453 = r140451 / r140452;
double r140454 = r140449 * r140453;
double r140455 = r140445 * r140454;
double r140456 = r140437 + r140455;
double r140457 = 3.148145590460314e-195;
bool r140458 = r140434 <= r140457;
double r140459 = r140437 * r140438;
double r140460 = r140459 / r140439;
double r140461 = r140460 + r140450;
double r140462 = r140450 * r140438;
double r140463 = r140462 / r140439;
double r140464 = r140461 - r140463;
double r140465 = r140440 / r140443;
double r140466 = r140451 * r140465;
double r140467 = r140437 + r140466;
double r140468 = r140458 ? r140464 : r140467;
double r140469 = r140436 ? r140456 : r140468;
return r140469;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -1.997543300824517e-131Initial program 11.1
rmApplied add-cube-cbrt11.6
Applied *-un-lft-identity11.6
Applied times-frac11.6
Applied associate-*r*9.6
Simplified9.6
rmApplied add-cube-cbrt9.6
Applied times-frac9.6
Applied associate-*l*9.4
rmApplied add-cube-cbrt9.4
Applied cbrt-prod9.5
Applied *-un-lft-identity9.5
Applied times-frac9.5
Applied associate-*r*9.4
Simplified9.4
if -1.997543300824517e-131 < a < 3.148145590460314e-195Initial program 25.5
Taylor expanded around inf 13.3
if 3.148145590460314e-195 < a Initial program 12.3
rmApplied add-cube-cbrt12.8
Applied *-un-lft-identity12.8
Applied times-frac12.8
Applied associate-*r*10.5
Simplified10.5
rmApplied add-cube-cbrt10.5
Applied times-frac10.5
Applied associate-*l*10.2
rmApplied associate-*r/10.1
rmApplied *-un-lft-identity10.1
Applied associate-*l*10.1
Simplified9.6
Final simplification10.3
herbie shell --seed 2019323
(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)))))