x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -4.461695944389990584855395905754140013375 \cdot 10^{-130}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \frac{\frac{y - z}{\sqrt[3]{a - z} \cdot \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}}}\right)\\
\mathbf{elif}\;a \le 2.213657479282627496070255771891102626534 \cdot 10^{-92}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t - \frac{t \cdot y}{z}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \frac{\frac{y - z}{\sqrt[3]{a - z} \cdot \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}}}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r11859903 = x;
double r11859904 = y;
double r11859905 = z;
double r11859906 = r11859904 - r11859905;
double r11859907 = t;
double r11859908 = r11859907 - r11859903;
double r11859909 = a;
double r11859910 = r11859909 - r11859905;
double r11859911 = r11859908 / r11859910;
double r11859912 = r11859906 * r11859911;
double r11859913 = r11859903 + r11859912;
return r11859913;
}
double f(double x, double y, double z, double t, double a) {
double r11859914 = a;
double r11859915 = -4.4616959443899906e-130;
bool r11859916 = r11859914 <= r11859915;
double r11859917 = x;
double r11859918 = cbrt(r11859917);
double r11859919 = r11859918 * r11859918;
double r11859920 = y;
double r11859921 = z;
double r11859922 = r11859920 - r11859921;
double r11859923 = r11859914 - r11859921;
double r11859924 = cbrt(r11859923);
double r11859925 = r11859924 * r11859924;
double r11859926 = r11859922 / r11859925;
double r11859927 = cbrt(r11859925);
double r11859928 = r11859926 / r11859927;
double r11859929 = t;
double r11859930 = r11859929 - r11859917;
double r11859931 = cbrt(r11859924);
double r11859932 = r11859930 / r11859931;
double r11859933 = r11859928 * r11859932;
double r11859934 = fma(r11859919, r11859918, r11859933);
double r11859935 = 2.2136574792826275e-92;
bool r11859936 = r11859914 <= r11859935;
double r11859937 = r11859917 / r11859921;
double r11859938 = r11859929 * r11859920;
double r11859939 = r11859938 / r11859921;
double r11859940 = r11859929 - r11859939;
double r11859941 = fma(r11859937, r11859920, r11859940);
double r11859942 = r11859936 ? r11859941 : r11859934;
double r11859943 = r11859916 ? r11859934 : r11859942;
return r11859943;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -4.4616959443899906e-130 or 2.2136574792826275e-92 < a Initial program 10.8
rmApplied add-cube-cbrt11.3
Applied *-un-lft-identity11.3
Applied times-frac11.3
Applied associate-*r*9.2
Simplified9.2
rmApplied add-cube-cbrt9.7
Applied fma-def9.7
rmApplied add-cube-cbrt9.7
Applied cbrt-prod9.8
Applied *-un-lft-identity9.8
Applied times-frac9.8
Applied associate-*r*9.8
Simplified9.8
if -4.4616959443899906e-130 < a < 2.2136574792826275e-92Initial program 24.3
Taylor expanded around inf 15.5
Simplified15.1
Final simplification11.3
herbie shell --seed 2019173 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))