x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -5.8776542829972293 \cdot 10^{-231}:\\
\;\;\;\;x + \left(\left(y - z\right) \cdot \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]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}}\\
\mathbf{elif}\;a \le 1.20471099826735273 \cdot 10^{-174}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \left(\left(y - z\right) \cdot \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}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r84662 = x;
double r84663 = y;
double r84664 = z;
double r84665 = r84663 - r84664;
double r84666 = t;
double r84667 = r84666 - r84662;
double r84668 = a;
double r84669 = r84668 - r84664;
double r84670 = r84667 / r84669;
double r84671 = r84665 * r84670;
double r84672 = r84662 + r84671;
return r84672;
}
double f(double x, double y, double z, double t, double a) {
double r84673 = a;
double r84674 = -5.877654282997229e-231;
bool r84675 = r84673 <= r84674;
double r84676 = x;
double r84677 = y;
double r84678 = z;
double r84679 = r84677 - r84678;
double r84680 = t;
double r84681 = r84680 - r84676;
double r84682 = cbrt(r84681);
double r84683 = r84682 * r84682;
double r84684 = r84673 - r84678;
double r84685 = cbrt(r84684);
double r84686 = r84685 * r84685;
double r84687 = r84683 / r84686;
double r84688 = r84679 * r84687;
double r84689 = cbrt(r84686);
double r84690 = cbrt(r84685);
double r84691 = r84689 * r84690;
double r84692 = r84682 / r84691;
double r84693 = r84688 * r84692;
double r84694 = r84676 + r84693;
double r84695 = 1.2047109982673527e-174;
bool r84696 = r84673 <= r84695;
double r84697 = r84676 * r84677;
double r84698 = r84697 / r84678;
double r84699 = r84698 + r84680;
double r84700 = r84680 * r84677;
double r84701 = r84700 / r84678;
double r84702 = r84699 - r84701;
double r84703 = r84682 / r84685;
double r84704 = r84688 * r84703;
double r84705 = r84676 + r84704;
double r84706 = r84696 ? r84702 : r84705;
double r84707 = r84675 ? r84694 : r84706;
return r84707;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -5.877654282997229e-231Initial program 13.2
rmApplied add-cube-cbrt13.7
Applied add-cube-cbrt13.9
Applied times-frac13.9
Applied associate-*r*11.1
rmApplied add-cube-cbrt11.1
Applied cbrt-prod11.1
if -5.877654282997229e-231 < a < 1.2047109982673527e-174Initial program 25.5
Taylor expanded around inf 10.4
if 1.2047109982673527e-174 < a Initial program 12.5
rmApplied add-cube-cbrt12.9
Applied add-cube-cbrt13.1
Applied times-frac13.1
Applied associate-*r*10.1
Final simplification10.6
herbie shell --seed 2020025
(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)))))