\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 \le -9.434783373745747375640341436664471075346 \cdot 10^{-5} \lor \neg \left(b \le 213.2067128981206280968763167038559913635\right):\\
\;\;\;\;\left(\left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right) + 4 \cdot \left(b \cdot b\right)\right) - 1\\
\mathbf{else}:\\
\;\;\;\;\left({a}^{4} + 4 \cdot {b}^{2}\right) - 1\\
\end{array}double f(double a, double b) {
double r205936 = a;
double r205937 = r205936 * r205936;
double r205938 = b;
double r205939 = r205938 * r205938;
double r205940 = r205937 + r205939;
double r205941 = 2.0;
double r205942 = pow(r205940, r205941);
double r205943 = 4.0;
double r205944 = r205943 * r205939;
double r205945 = r205942 + r205944;
double r205946 = 1.0;
double r205947 = r205945 - r205946;
return r205947;
}
double f(double a, double b) {
double r205948 = b;
double r205949 = -9.434783373745747e-05;
bool r205950 = r205948 <= r205949;
double r205951 = 213.20671289812063;
bool r205952 = r205948 <= r205951;
double r205953 = !r205952;
bool r205954 = r205950 || r205953;
double r205955 = 4.0;
double r205956 = pow(r205948, r205955);
double r205957 = 2.0;
double r205958 = a;
double r205959 = 2.0;
double r205960 = pow(r205958, r205959);
double r205961 = pow(r205948, r205959);
double r205962 = r205960 * r205961;
double r205963 = r205957 * r205962;
double r205964 = r205956 + r205963;
double r205965 = 4.0;
double r205966 = r205948 * r205948;
double r205967 = r205965 * r205966;
double r205968 = r205964 + r205967;
double r205969 = 1.0;
double r205970 = r205968 - r205969;
double r205971 = pow(r205958, r205955);
double r205972 = r205965 * r205961;
double r205973 = r205971 + r205972;
double r205974 = r205973 - r205969;
double r205975 = r205954 ? r205970 : r205974;
return r205975;
}



Bits error versus a



Bits error versus b
Results
if b < -9.434783373745747e-05 or 213.20671289812063 < b Initial program 0.5
Taylor expanded around 0 6.6
if -9.434783373745747e-05 < b < 213.20671289812063Initial program 0.1
Taylor expanded around 0 0.3
Final simplification1.6
herbie shell --seed 2019350
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))