x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -3.00144295601552635 \cdot 10^{-245}:\\
\;\;\;\;\left(\frac{\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right) \cdot \left(\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}\right) + x\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{\frac{y - z}{\sqrt[3]{a - z}}}{\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 r127477 = x;
double r127478 = y;
double r127479 = z;
double r127480 = r127478 - r127479;
double r127481 = t;
double r127482 = r127481 - r127477;
double r127483 = a;
double r127484 = r127483 - r127479;
double r127485 = r127482 / r127484;
double r127486 = r127480 * r127485;
double r127487 = r127477 + r127486;
return r127487;
}
double f(double x, double y, double z, double t, double a) {
double r127488 = x;
double r127489 = y;
double r127490 = z;
double r127491 = r127489 - r127490;
double r127492 = t;
double r127493 = r127492 - r127488;
double r127494 = a;
double r127495 = r127494 - r127490;
double r127496 = r127493 / r127495;
double r127497 = r127491 * r127496;
double r127498 = r127488 + r127497;
double r127499 = -3.0014429560155264e-245;
bool r127500 = r127498 <= r127499;
double r127501 = cbrt(r127491);
double r127502 = cbrt(r127495);
double r127503 = r127501 / r127502;
double r127504 = r127503 / r127502;
double r127505 = r127493 / r127502;
double r127506 = r127504 * r127505;
double r127507 = r127501 * r127501;
double r127508 = r127506 * r127507;
double r127509 = r127508 + r127488;
double r127510 = 0.0;
bool r127511 = r127498 <= r127510;
double r127512 = r127488 * r127489;
double r127513 = r127512 / r127490;
double r127514 = r127513 + r127492;
double r127515 = r127492 * r127489;
double r127516 = r127515 / r127490;
double r127517 = r127514 - r127516;
double r127518 = r127491 / r127502;
double r127519 = r127518 / r127502;
double r127520 = r127519 * r127505;
double r127521 = r127488 + r127520;
double r127522 = r127511 ? r127517 : r127521;
double r127523 = r127500 ? r127509 : r127522;
return r127523;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+ x (* (- y z) (/ (- t x) (- a z)))) < -3.0014429560155264e-245Initial program 6.8
rmApplied add-cube-cbrt7.5
Applied *-un-lft-identity7.5
Applied times-frac7.5
Applied associate-*r*5.2
Simplified5.2
rmApplied *-un-lft-identity5.2
Applied *-un-lft-identity5.2
Applied cbrt-prod5.2
Applied add-cube-cbrt5.1
Applied times-frac5.1
Applied times-frac5.1
Applied associate-*l*5.5
if -3.0014429560155264e-245 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 58.6
Taylor expanded around inf 27.9
if 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.7
rmApplied add-cube-cbrt8.4
Applied *-un-lft-identity8.4
Applied times-frac8.4
Applied associate-*r*5.5
Simplified5.5
Final simplification8.9
herbie shell --seed 2019199
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))