x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \frac{t - x}{a - z} \cdot \left(y - z\right) \le -3.0404789902267714 \cdot 10^{-273}:\\
\;\;\;\;\frac{\frac{\frac{\frac{y - z}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}}{\sqrt[3]{\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}}} + x\\
\mathbf{elif}\;x + \frac{t - x}{a - z} \cdot \left(y - z\right) \le 1.614867160905698 \cdot 10^{-291}:\\
\;\;\;\;\frac{x}{\frac{z}{y}} + \left(t - \frac{t}{\frac{z}{y}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{y - z}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}}{\sqrt[3]{\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}}} + x\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r7608861 = x;
double r7608862 = y;
double r7608863 = z;
double r7608864 = r7608862 - r7608863;
double r7608865 = t;
double r7608866 = r7608865 - r7608861;
double r7608867 = a;
double r7608868 = r7608867 - r7608863;
double r7608869 = r7608866 / r7608868;
double r7608870 = r7608864 * r7608869;
double r7608871 = r7608861 + r7608870;
return r7608871;
}
double f(double x, double y, double z, double t, double a) {
double r7608872 = x;
double r7608873 = t;
double r7608874 = r7608873 - r7608872;
double r7608875 = a;
double r7608876 = z;
double r7608877 = r7608875 - r7608876;
double r7608878 = r7608874 / r7608877;
double r7608879 = y;
double r7608880 = r7608879 - r7608876;
double r7608881 = r7608878 * r7608880;
double r7608882 = r7608872 + r7608881;
double r7608883 = -3.0404789902267714e-273;
bool r7608884 = r7608882 <= r7608883;
double r7608885 = cbrt(r7608877);
double r7608886 = r7608880 / r7608885;
double r7608887 = r7608885 * r7608885;
double r7608888 = cbrt(r7608887);
double r7608889 = r7608886 / r7608888;
double r7608890 = cbrt(r7608885);
double r7608891 = r7608889 / r7608890;
double r7608892 = r7608891 / r7608888;
double r7608893 = r7608874 / r7608890;
double r7608894 = r7608892 * r7608893;
double r7608895 = r7608894 + r7608872;
double r7608896 = 1.614867160905698e-291;
bool r7608897 = r7608882 <= r7608896;
double r7608898 = r7608876 / r7608879;
double r7608899 = r7608872 / r7608898;
double r7608900 = r7608873 / r7608898;
double r7608901 = r7608873 - r7608900;
double r7608902 = r7608899 + r7608901;
double r7608903 = r7608897 ? r7608902 : r7608895;
double r7608904 = r7608884 ? r7608895 : r7608903;
return r7608904;
}



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.0404789902267714e-273 or 1.614867160905698e-291 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.1
rmApplied add-cube-cbrt7.8
Applied *-un-lft-identity7.8
Applied times-frac7.8
Applied associate-*r*5.2
Simplified5.2
rmApplied add-cube-cbrt5.2
Applied cbrt-prod5.3
rmApplied add-cube-cbrt5.4
Applied cbrt-prod5.5
Applied *-un-lft-identity5.5
Applied times-frac5.5
Applied associate-*r*5.2
Simplified5.2
if -3.0404789902267714e-273 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 1.614867160905698e-291Initial program 59.3
rmApplied add-cube-cbrt59.1
Applied *-un-lft-identity59.1
Applied times-frac59.1
Applied associate-*r*56.8
Simplified56.9
rmApplied add-cube-cbrt56.9
Applied cbrt-prod56.8
Taylor expanded around inf 26.7
Simplified22.8
Final simplification7.6
herbie shell --seed 2019163
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))