x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -7.3755603769615804 \cdot 10^{-35}:\\
\;\;\;\;x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{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.9946576783558662 \cdot 10^{-73}:\\
\;\;\;\;t + y \cdot \left(\frac{x}{z} - \frac{t}{z}\right)\\
\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 r123853 = x;
double r123854 = y;
double r123855 = z;
double r123856 = r123854 - r123855;
double r123857 = t;
double r123858 = r123857 - r123853;
double r123859 = a;
double r123860 = r123859 - r123855;
double r123861 = r123858 / r123860;
double r123862 = r123856 * r123861;
double r123863 = r123853 + r123862;
return r123863;
}
double f(double x, double y, double z, double t, double a) {
double r123864 = a;
double r123865 = -7.37556037696158e-35;
bool r123866 = r123864 <= r123865;
double r123867 = x;
double r123868 = y;
double r123869 = z;
double r123870 = r123868 - r123869;
double r123871 = r123864 - r123869;
double r123872 = cbrt(r123871);
double r123873 = r123872 * r123872;
double r123874 = r123870 / r123873;
double r123875 = t;
double r123876 = r123875 - r123867;
double r123877 = cbrt(r123873);
double r123878 = cbrt(r123872);
double r123879 = r123877 * r123878;
double r123880 = r123876 / r123879;
double r123881 = r123874 * r123880;
double r123882 = r123867 + r123881;
double r123883 = 1.9946576783558662e-73;
bool r123884 = r123864 <= r123883;
double r123885 = r123867 / r123869;
double r123886 = r123875 / r123869;
double r123887 = r123885 - r123886;
double r123888 = r123868 * r123887;
double r123889 = r123875 + r123888;
double r123890 = cbrt(r123876);
double r123891 = r123890 * r123890;
double r123892 = r123891 / r123873;
double r123893 = r123870 * r123892;
double r123894 = r123890 / r123872;
double r123895 = r123893 * r123894;
double r123896 = r123867 + r123895;
double r123897 = r123884 ? r123889 : r123896;
double r123898 = r123866 ? r123882 : r123897;
return r123898;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -7.37556037696158e-35Initial program 9.0
rmApplied add-cube-cbrt9.4
Applied *-un-lft-identity9.4
Applied times-frac9.4
Applied associate-*r*7.7
Simplified7.7
rmApplied add-cube-cbrt7.8
Applied cbrt-prod7.8
if -7.37556037696158e-35 < a < 1.9946576783558662e-73Initial program 23.0
rmApplied add-cube-cbrt23.7
Applied add-cube-cbrt23.9
Applied times-frac23.9
Applied associate-*r*19.0
Taylor expanded around inf 18.4
Simplified15.6
if 1.9946576783558662e-73 < a Initial program 9.8
rmApplied add-cube-cbrt10.2
Applied add-cube-cbrt10.4
Applied times-frac10.4
Applied associate-*r*8.1
Final simplification10.8
herbie shell --seed 2020027
(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)))))