x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.796564897818171461838241121240225506082 \cdot 10^{-276} \lor \neg \left(a \le 24670226099090405448076544256884334395390\right):\\
\;\;\;\;\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}} + x\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{x}{z} - \frac{t}{z}, t\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r98892 = x;
double r98893 = y;
double r98894 = z;
double r98895 = r98893 - r98894;
double r98896 = t;
double r98897 = r98896 - r98892;
double r98898 = a;
double r98899 = r98898 - r98894;
double r98900 = r98897 / r98899;
double r98901 = r98895 * r98900;
double r98902 = r98892 + r98901;
return r98902;
}
double f(double x, double y, double z, double t, double a) {
double r98903 = a;
double r98904 = -1.7965648978181715e-276;
bool r98905 = r98903 <= r98904;
double r98906 = 2.4670226099090405e+40;
bool r98907 = r98903 <= r98906;
double r98908 = !r98907;
bool r98909 = r98905 || r98908;
double r98910 = y;
double r98911 = z;
double r98912 = r98910 - r98911;
double r98913 = t;
double r98914 = x;
double r98915 = r98913 - r98914;
double r98916 = cbrt(r98915);
double r98917 = r98916 * r98916;
double r98918 = r98903 - r98911;
double r98919 = cbrt(r98918);
double r98920 = r98919 * r98919;
double r98921 = r98917 / r98920;
double r98922 = r98912 * r98921;
double r98923 = r98916 / r98919;
double r98924 = r98922 * r98923;
double r98925 = r98924 + r98914;
double r98926 = r98914 / r98911;
double r98927 = r98913 / r98911;
double r98928 = r98926 - r98927;
double r98929 = fma(r98910, r98928, r98913);
double r98930 = r98909 ? r98925 : r98929;
return r98930;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -1.7965648978181715e-276 or 2.4670226099090405e+40 < a Initial program 12.3
Simplified12.2
rmApplied fma-udef12.3
rmApplied add-cube-cbrt12.8
Applied add-cube-cbrt12.9
Applied times-frac12.9
Applied associate-*r*9.9
if -1.7965648978181715e-276 < a < 2.4670226099090405e+40Initial program 22.3
Simplified22.2
Taylor expanded around inf 23.1
Simplified20.2
Final simplification12.8
herbie shell --seed 2020002 +o rules:numerics
(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)))))