x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.80364094747130576584611116849255201802 \cdot 10^{-183}:\\
\;\;\;\;x + \left(\left(\left(y - z\right) \cdot \left(\sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}\right)\right) \cdot \sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\
\mathbf{elif}\;a \le 4.148123673034126016993570331008942926337 \cdot 10^{-100}:\\
\;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r99500 = x;
double r99501 = y;
double r99502 = z;
double r99503 = r99501 - r99502;
double r99504 = t;
double r99505 = r99504 - r99500;
double r99506 = a;
double r99507 = r99506 - r99502;
double r99508 = r99505 / r99507;
double r99509 = r99503 * r99508;
double r99510 = r99500 + r99509;
return r99510;
}
double f(double x, double y, double z, double t, double a) {
double r99511 = a;
double r99512 = -1.8036409474713058e-183;
bool r99513 = r99511 <= r99512;
double r99514 = x;
double r99515 = y;
double r99516 = z;
double r99517 = r99515 - r99516;
double r99518 = t;
double r99519 = r99518 - r99514;
double r99520 = cbrt(r99519);
double r99521 = r99520 * r99520;
double r99522 = r99511 - r99516;
double r99523 = cbrt(r99522);
double r99524 = r99523 * r99523;
double r99525 = r99521 / r99524;
double r99526 = cbrt(r99525);
double r99527 = r99526 * r99526;
double r99528 = r99517 * r99527;
double r99529 = r99528 * r99526;
double r99530 = r99520 / r99523;
double r99531 = r99529 * r99530;
double r99532 = r99514 + r99531;
double r99533 = 4.148123673034126e-100;
bool r99534 = r99511 <= r99533;
double r99535 = r99514 / r99516;
double r99536 = r99518 / r99516;
double r99537 = r99535 - r99536;
double r99538 = r99515 * r99537;
double r99539 = r99538 + r99518;
double r99540 = r99517 / r99524;
double r99541 = r99519 / r99523;
double r99542 = r99540 * r99541;
double r99543 = r99514 + r99542;
double r99544 = r99534 ? r99539 : r99543;
double r99545 = r99513 ? r99532 : r99544;
return r99545;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -1.8036409474713058e-183Initial program 12.6
rmApplied add-cube-cbrt13.1
Applied add-cube-cbrt13.2
Applied times-frac13.2
Applied associate-*r*10.3
rmApplied add-cube-cbrt10.4
Applied associate-*r*10.4
if -1.8036409474713058e-183 < a < 4.148123673034126e-100Initial program 24.5
rmApplied add-cube-cbrt25.2
Applied add-cube-cbrt25.4
Applied times-frac25.4
Applied associate-*r*19.6
rmApplied add-cube-cbrt19.8
Applied associate-*r*19.7
Taylor expanded around inf 14.2
Simplified12.2
if 4.148123673034126e-100 < a Initial program 10.2
rmApplied add-cube-cbrt10.7
Applied *-un-lft-identity10.7
Applied times-frac10.7
Applied associate-*r*8.4
Simplified8.4
Final simplification10.1
herbie shell --seed 2019323 +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)))))