x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -5.78394760799221384 \cdot 10^{-118} \lor \neg \left(a \le 3.53015522021268738 \cdot 10^{-230}\right):\\
\;\;\;\;x + \left(\left(\left(y - z\right) \cdot \left(\sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}\right)\right) \cdot \sqrt[3]{\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}}\\
\mathbf{else}:\\
\;\;\;\;t + y \cdot \left(\frac{x}{z} - \frac{t}{z}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r96827 = x;
double r96828 = y;
double r96829 = z;
double r96830 = r96828 - r96829;
double r96831 = t;
double r96832 = r96831 - r96827;
double r96833 = a;
double r96834 = r96833 - r96829;
double r96835 = r96832 / r96834;
double r96836 = r96830 * r96835;
double r96837 = r96827 + r96836;
return r96837;
}
double f(double x, double y, double z, double t, double a) {
double r96838 = a;
double r96839 = -5.783947607992214e-118;
bool r96840 = r96838 <= r96839;
double r96841 = 3.5301552202126874e-230;
bool r96842 = r96838 <= r96841;
double r96843 = !r96842;
bool r96844 = r96840 || r96843;
double r96845 = x;
double r96846 = y;
double r96847 = z;
double r96848 = r96846 - r96847;
double r96849 = t;
double r96850 = r96849 - r96845;
double r96851 = cbrt(r96850);
double r96852 = r96851 * r96851;
double r96853 = r96838 - r96847;
double r96854 = cbrt(r96853);
double r96855 = r96854 * r96854;
double r96856 = r96852 / r96855;
double r96857 = cbrt(r96856);
double r96858 = r96857 * r96857;
double r96859 = r96848 * r96858;
double r96860 = r96859 * r96857;
double r96861 = r96851 / r96854;
double r96862 = r96860 * r96861;
double r96863 = r96845 + r96862;
double r96864 = r96845 / r96847;
double r96865 = r96849 / r96847;
double r96866 = r96864 - r96865;
double r96867 = r96846 * r96866;
double r96868 = r96849 + r96867;
double r96869 = r96844 ? r96863 : r96868;
return r96869;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -5.783947607992214e-118 or 3.5301552202126874e-230 < a Initial program 12.3
rmApplied add-cube-cbrt12.8
Applied add-cube-cbrt12.9
Applied times-frac12.9
Applied associate-*r*10.0
rmApplied add-cube-cbrt10.1
Applied associate-*r*10.1
if -5.783947607992214e-118 < a < 3.5301552202126874e-230Initial program 25.5
rmApplied add-cube-cbrt26.2
Applied add-cube-cbrt26.4
Applied times-frac26.4
Applied associate-*r*20.4
rmApplied add-cube-cbrt20.6
Applied associate-*r*20.6
Taylor expanded around inf 14.0
Simplified12.3
Final simplification10.6
herbie shell --seed 2020062
(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)))))