x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -3.956280165893758193874340988906388103674 \cdot 10^{-277}:\\
\;\;\;\;x + \left(\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right)\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0:\\
\;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \left(\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right)\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 r10595849 = x;
double r10595850 = y;
double r10595851 = z;
double r10595852 = r10595850 - r10595851;
double r10595853 = t;
double r10595854 = r10595853 - r10595849;
double r10595855 = a;
double r10595856 = r10595855 - r10595851;
double r10595857 = r10595854 / r10595856;
double r10595858 = r10595852 * r10595857;
double r10595859 = r10595849 + r10595858;
return r10595859;
}
double f(double x, double y, double z, double t, double a) {
double r10595860 = x;
double r10595861 = y;
double r10595862 = z;
double r10595863 = r10595861 - r10595862;
double r10595864 = t;
double r10595865 = r10595864 - r10595860;
double r10595866 = a;
double r10595867 = r10595866 - r10595862;
double r10595868 = r10595865 / r10595867;
double r10595869 = r10595863 * r10595868;
double r10595870 = r10595860 + r10595869;
double r10595871 = -3.956280165893758e-277;
bool r10595872 = r10595870 <= r10595871;
double r10595873 = cbrt(r10595867);
double r10595874 = r10595873 * r10595873;
double r10595875 = r10595863 / r10595874;
double r10595876 = cbrt(r10595865);
double r10595877 = r10595876 * r10595876;
double r10595878 = r10595875 * r10595877;
double r10595879 = r10595876 / r10595873;
double r10595880 = r10595878 * r10595879;
double r10595881 = r10595860 + r10595880;
double r10595882 = 0.0;
bool r10595883 = r10595870 <= r10595882;
double r10595884 = r10595860 * r10595861;
double r10595885 = r10595884 / r10595862;
double r10595886 = r10595864 + r10595885;
double r10595887 = r10595864 * r10595861;
double r10595888 = r10595887 / r10595862;
double r10595889 = r10595886 - r10595888;
double r10595890 = r10595883 ? r10595889 : r10595881;
double r10595891 = r10595872 ? r10595881 : r10595890;
return r10595891;
}



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.956280165893758e-277 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.3
rmApplied add-cube-cbrt8.0
Applied *-un-lft-identity8.0
Applied times-frac8.0
Applied associate-*r*4.9
Simplified4.9
rmApplied *-un-lft-identity4.9
Applied cbrt-prod4.9
Applied add-cube-cbrt5.1
Applied times-frac5.1
Applied associate-*r*4.6
Simplified4.6
if -3.956280165893758e-277 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 60.6
Taylor expanded around inf 26.2
Final simplification7.6
herbie shell --seed 2019174
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))