x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.997543300824516967451174039616744917242 \cdot 10^{-131}:\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\
\mathbf{elif}\;a \le 3.148145590460313919036522755186967820726 \cdot 10^{-195}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - z}{a - z} \cdot \left(t - x\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r110740 = x;
double r110741 = y;
double r110742 = z;
double r110743 = r110741 - r110742;
double r110744 = t;
double r110745 = r110744 - r110740;
double r110746 = a;
double r110747 = r110746 - r110742;
double r110748 = r110745 / r110747;
double r110749 = r110743 * r110748;
double r110750 = r110740 + r110749;
return r110750;
}
double f(double x, double y, double z, double t, double a) {
double r110751 = a;
double r110752 = -1.997543300824517e-131;
bool r110753 = r110751 <= r110752;
double r110754 = x;
double r110755 = y;
double r110756 = z;
double r110757 = r110755 - r110756;
double r110758 = cbrt(r110757);
double r110759 = r110758 * r110758;
double r110760 = r110751 - r110756;
double r110761 = cbrt(r110760);
double r110762 = r110759 / r110761;
double r110763 = r110758 / r110761;
double r110764 = r110761 * r110761;
double r110765 = cbrt(r110764);
double r110766 = r110763 / r110765;
double r110767 = t;
double r110768 = r110767 - r110754;
double r110769 = cbrt(r110761);
double r110770 = r110768 / r110769;
double r110771 = r110766 * r110770;
double r110772 = r110762 * r110771;
double r110773 = r110754 + r110772;
double r110774 = 3.148145590460314e-195;
bool r110775 = r110751 <= r110774;
double r110776 = r110754 * r110755;
double r110777 = r110776 / r110756;
double r110778 = r110777 + r110767;
double r110779 = r110767 * r110755;
double r110780 = r110779 / r110756;
double r110781 = r110778 - r110780;
double r110782 = r110757 / r110760;
double r110783 = r110782 * r110768;
double r110784 = r110754 + r110783;
double r110785 = r110775 ? r110781 : r110784;
double r110786 = r110753 ? r110773 : r110785;
return r110786;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -1.997543300824517e-131Initial program 11.1
rmApplied add-cube-cbrt11.6
Applied *-un-lft-identity11.6
Applied times-frac11.6
Applied associate-*r*9.6
Simplified9.6
rmApplied add-cube-cbrt9.6
Applied times-frac9.6
Applied associate-*l*9.4
rmApplied add-cube-cbrt9.4
Applied cbrt-prod9.5
Applied *-un-lft-identity9.5
Applied times-frac9.5
Applied associate-*r*9.4
Simplified9.4
if -1.997543300824517e-131 < a < 3.148145590460314e-195Initial program 25.5
Taylor expanded around inf 13.3
if 3.148145590460314e-195 < a Initial program 12.3
rmApplied add-cube-cbrt12.8
Applied *-un-lft-identity12.8
Applied times-frac12.8
Applied associate-*r*10.5
Simplified10.5
rmApplied add-cube-cbrt10.5
Applied times-frac10.5
Applied associate-*l*10.2
rmApplied associate-*r/10.1
rmApplied pow110.1
Applied pow110.1
Applied pow-prod-down10.1
Simplified9.6
Final simplification10.3
herbie shell --seed 2019323
(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)))))