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 r81416 = x;
double r81417 = y;
double r81418 = z;
double r81419 = r81417 - r81418;
double r81420 = t;
double r81421 = r81420 - r81416;
double r81422 = a;
double r81423 = r81422 - r81418;
double r81424 = r81421 / r81423;
double r81425 = r81419 * r81424;
double r81426 = r81416 + r81425;
return r81426;
}
double f(double x, double y, double z, double t, double a) {
double r81427 = a;
double r81428 = -1.8036409474713058e-183;
bool r81429 = r81427 <= r81428;
double r81430 = x;
double r81431 = y;
double r81432 = z;
double r81433 = r81431 - r81432;
double r81434 = t;
double r81435 = r81434 - r81430;
double r81436 = cbrt(r81435);
double r81437 = r81436 * r81436;
double r81438 = r81427 - r81432;
double r81439 = cbrt(r81438);
double r81440 = r81439 * r81439;
double r81441 = r81437 / r81440;
double r81442 = cbrt(r81441);
double r81443 = r81442 * r81442;
double r81444 = r81433 * r81443;
double r81445 = r81444 * r81442;
double r81446 = r81436 / r81439;
double r81447 = r81445 * r81446;
double r81448 = r81430 + r81447;
double r81449 = 4.148123673034126e-100;
bool r81450 = r81427 <= r81449;
double r81451 = r81430 / r81432;
double r81452 = r81434 / r81432;
double r81453 = r81451 - r81452;
double r81454 = r81431 * r81453;
double r81455 = r81454 + r81434;
double r81456 = r81433 / r81440;
double r81457 = r81435 / r81439;
double r81458 = r81456 * r81457;
double r81459 = r81430 + r81458;
double r81460 = r81450 ? r81455 : r81459;
double r81461 = r81429 ? r81448 : r81460;
return r81461;
}



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