\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\begin{array}{l}
\mathbf{if}\;b \cdot b \le 1.061383019026471481028624498784720164347 \cdot 10^{-13} \lor \neg \left(b \cdot b \le 911.531239174287975401966832578182220459\right):\\
\;\;\;\;\left({a}^{4} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\right) - 1\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{{\left({\left(a \cdot a + b \cdot b\right)}^{2}\right)}^{3}} + 4 \cdot \left(b \cdot b\right)\right) - 1\\
\end{array}double f(double a, double b) {
double r239868 = a;
double r239869 = r239868 * r239868;
double r239870 = b;
double r239871 = r239870 * r239870;
double r239872 = r239869 + r239871;
double r239873 = 2.0;
double r239874 = pow(r239872, r239873);
double r239875 = 4.0;
double r239876 = r239875 * r239871;
double r239877 = r239874 + r239876;
double r239878 = 1.0;
double r239879 = r239877 - r239878;
return r239879;
}
double f(double a, double b) {
double r239880 = b;
double r239881 = r239880 * r239880;
double r239882 = 1.0613830190264715e-13;
bool r239883 = r239881 <= r239882;
double r239884 = 911.531239174288;
bool r239885 = r239881 <= r239884;
double r239886 = !r239885;
bool r239887 = r239883 || r239886;
double r239888 = a;
double r239889 = 4.0;
double r239890 = pow(r239888, r239889);
double r239891 = pow(r239880, r239889);
double r239892 = 2.0;
double r239893 = pow(r239888, r239892);
double r239894 = pow(r239880, r239892);
double r239895 = r239893 * r239894;
double r239896 = r239892 * r239895;
double r239897 = r239891 + r239896;
double r239898 = r239890 + r239897;
double r239899 = 1.0;
double r239900 = r239898 - r239899;
double r239901 = r239888 * r239888;
double r239902 = r239901 + r239881;
double r239903 = 2.0;
double r239904 = pow(r239902, r239903);
double r239905 = 3.0;
double r239906 = pow(r239904, r239905);
double r239907 = cbrt(r239906);
double r239908 = 4.0;
double r239909 = r239908 * r239881;
double r239910 = r239907 + r239909;
double r239911 = r239910 - r239899;
double r239912 = r239887 ? r239900 : r239911;
return r239912;
}



Bits error versus a



Bits error versus b
Results
if (* b b) < 1.0613830190264715e-13 or 911.531239174288 < (* b b) Initial program 0.2
Taylor expanded around inf 0.3
if 1.0613830190264715e-13 < (* b b) < 911.531239174288Initial program 0.2
rmApplied add-cbrt-cube9.0
Simplified9.0
Final simplification0.5
herbie shell --seed 2019325
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))