x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -2.479409256430602805583242268706868636975 \cdot 10^{-100} \lor \neg \left(a \le 3.423434916771324575324687721886148731253 \cdot 10^{-135}\right):\\
\;\;\;\;\mathsf{fma}\left(\frac{y - z}{a - z}, t + \left(-x\right), x\right) + \mathsf{fma}\left(-\sqrt[3]{x}, \sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x} \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) \cdot \left(\left(y - z\right) \cdot \frac{1}{a - z}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t\right) - \frac{t \cdot y}{z}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r147705 = x;
double r147706 = y;
double r147707 = z;
double r147708 = r147706 - r147707;
double r147709 = t;
double r147710 = r147709 - r147705;
double r147711 = a;
double r147712 = r147711 - r147707;
double r147713 = r147710 / r147712;
double r147714 = r147708 * r147713;
double r147715 = r147705 + r147714;
return r147715;
}
double f(double x, double y, double z, double t, double a) {
double r147716 = a;
double r147717 = -2.479409256430603e-100;
bool r147718 = r147716 <= r147717;
double r147719 = 3.4234349167713246e-135;
bool r147720 = r147716 <= r147719;
double r147721 = !r147720;
bool r147722 = r147718 || r147721;
double r147723 = y;
double r147724 = z;
double r147725 = r147723 - r147724;
double r147726 = r147716 - r147724;
double r147727 = r147725 / r147726;
double r147728 = t;
double r147729 = x;
double r147730 = -r147729;
double r147731 = r147728 + r147730;
double r147732 = fma(r147727, r147731, r147729);
double r147733 = cbrt(r147729);
double r147734 = -r147733;
double r147735 = r147733 * r147733;
double r147736 = r147733 * r147735;
double r147737 = fma(r147734, r147735, r147736);
double r147738 = 1.0;
double r147739 = r147738 / r147726;
double r147740 = r147725 * r147739;
double r147741 = r147737 * r147740;
double r147742 = r147732 + r147741;
double r147743 = r147729 / r147724;
double r147744 = fma(r147743, r147723, r147728);
double r147745 = r147728 * r147723;
double r147746 = r147745 / r147724;
double r147747 = r147744 - r147746;
double r147748 = r147722 ? r147742 : r147747;
return r147748;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -2.479409256430603e-100 or 3.4234349167713246e-135 < a Initial program 10.4
rmApplied div-sub10.4
rmApplied div-inv10.4
Applied div-inv10.5
Applied distribute-rgt-out--10.5
Applied associate-*r*8.4
rmApplied add-cube-cbrt8.5
Applied add-sqr-sqrt36.0
Applied prod-diff36.0
Applied distribute-rgt-in36.0
Applied associate-+r+36.0
Simplified8.2
if -2.479409256430603e-100 < a < 3.4234349167713246e-135Initial program 24.8
Taylor expanded around inf 15.5
Simplified14.2
Final simplification9.9
herbie shell --seed 2019209 +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)))))