\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.02236235983317489029397541438357559891 \cdot 10^{-37} \lor \neg \left(b \cdot b \le 15928146782686.330078125\right):\\
\;\;\;\;\left({a}^{4} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\right) - 1\\
\mathbf{else}:\\
\;\;\;\;\left(\left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right) + \left(\sqrt[3]{4} \cdot \sqrt[3]{4}\right) \cdot \left(\sqrt[3]{4} \cdot \left(b \cdot b\right)\right)\right) - 1\\
\end{array}double f(double a, double b) {
double r268298 = a;
double r268299 = r268298 * r268298;
double r268300 = b;
double r268301 = r268300 * r268300;
double r268302 = r268299 + r268301;
double r268303 = 2.0;
double r268304 = pow(r268302, r268303);
double r268305 = 4.0;
double r268306 = r268305 * r268301;
double r268307 = r268304 + r268306;
double r268308 = 1.0;
double r268309 = r268307 - r268308;
return r268309;
}
double f(double a, double b) {
double r268310 = b;
double r268311 = r268310 * r268310;
double r268312 = 1.0223623598331749e-37;
bool r268313 = r268311 <= r268312;
double r268314 = 15928146782686.33;
bool r268315 = r268311 <= r268314;
double r268316 = !r268315;
bool r268317 = r268313 || r268316;
double r268318 = a;
double r268319 = 4.0;
double r268320 = pow(r268318, r268319);
double r268321 = pow(r268310, r268319);
double r268322 = 2.0;
double r268323 = pow(r268318, r268322);
double r268324 = pow(r268310, r268322);
double r268325 = r268323 * r268324;
double r268326 = r268322 * r268325;
double r268327 = r268321 + r268326;
double r268328 = r268320 + r268327;
double r268329 = 1.0;
double r268330 = r268328 - r268329;
double r268331 = 2.0;
double r268332 = r268331 * r268325;
double r268333 = r268321 + r268332;
double r268334 = 4.0;
double r268335 = cbrt(r268334);
double r268336 = r268335 * r268335;
double r268337 = r268335 * r268311;
double r268338 = r268336 * r268337;
double r268339 = r268333 + r268338;
double r268340 = r268339 - r268329;
double r268341 = r268317 ? r268330 : r268340;
return r268341;
}



Bits error versus a



Bits error versus b
Results
if (* b b) < 1.0223623598331749e-37 or 15928146782686.33 < (* b b) Initial program 0.2
Taylor expanded around inf 0.0
if 1.0223623598331749e-37 < (* b b) < 15928146782686.33Initial program 0.2
Taylor expanded around 0 10.6
rmApplied add-cube-cbrt10.6
Applied associate-*l*10.6
Final simplification0.7
herbie shell --seed 2019326
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))