x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -6.073710910444692 \cdot 10^{-248}:\\
\;\;\;\;x + \frac{t - x}{\frac{a - z}{y - z}}\\
\mathbf{elif}\;a \le 1.666153532327582 \cdot 10^{-129}:\\
\;\;\;\;\left(t + \frac{y \cdot x}{z}\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \left(\left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right) \cdot \frac{y - z}{a - z}\right) \cdot \sqrt[3]{t - x}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r7996712 = x;
double r7996713 = y;
double r7996714 = z;
double r7996715 = r7996713 - r7996714;
double r7996716 = t;
double r7996717 = r7996716 - r7996712;
double r7996718 = a;
double r7996719 = r7996718 - r7996714;
double r7996720 = r7996717 / r7996719;
double r7996721 = r7996715 * r7996720;
double r7996722 = r7996712 + r7996721;
return r7996722;
}
double f(double x, double y, double z, double t, double a) {
double r7996723 = a;
double r7996724 = -6.073710910444692e-248;
bool r7996725 = r7996723 <= r7996724;
double r7996726 = x;
double r7996727 = t;
double r7996728 = r7996727 - r7996726;
double r7996729 = z;
double r7996730 = r7996723 - r7996729;
double r7996731 = y;
double r7996732 = r7996731 - r7996729;
double r7996733 = r7996730 / r7996732;
double r7996734 = r7996728 / r7996733;
double r7996735 = r7996726 + r7996734;
double r7996736 = 1.666153532327582e-129;
bool r7996737 = r7996723 <= r7996736;
double r7996738 = r7996731 * r7996726;
double r7996739 = r7996738 / r7996729;
double r7996740 = r7996727 + r7996739;
double r7996741 = r7996727 * r7996731;
double r7996742 = r7996741 / r7996729;
double r7996743 = r7996740 - r7996742;
double r7996744 = cbrt(r7996728);
double r7996745 = r7996744 * r7996744;
double r7996746 = r7996732 / r7996730;
double r7996747 = r7996745 * r7996746;
double r7996748 = r7996747 * r7996744;
double r7996749 = r7996726 + r7996748;
double r7996750 = r7996737 ? r7996743 : r7996749;
double r7996751 = r7996725 ? r7996735 : r7996750;
return r7996751;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -6.073710910444692e-248Initial program 13.4
rmApplied clear-num13.7
Applied un-div-inv13.5
rmApplied associate-/r/10.2
rmApplied clear-num10.3
Applied associate-*l/10.2
Simplified10.2
if -6.073710910444692e-248 < a < 1.666153532327582e-129Initial program 25.6
Taylor expanded around inf 13.1
if 1.666153532327582e-129 < a Initial program 11.4
rmApplied clear-num11.7
Applied un-div-inv11.5
rmApplied associate-/r/9.2
rmApplied add-cube-cbrt9.8
Applied associate-*r*9.8
Final simplification10.6
herbie shell --seed 2019158
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))