\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 r236277 = a;
double r236278 = r236277 * r236277;
double r236279 = b;
double r236280 = r236279 * r236279;
double r236281 = r236278 + r236280;
double r236282 = 2.0;
double r236283 = pow(r236281, r236282);
double r236284 = 4.0;
double r236285 = r236284 * r236280;
double r236286 = r236283 + r236285;
double r236287 = 1.0;
double r236288 = r236286 - r236287;
return r236288;
}
double f(double a, double b) {
double r236289 = b;
double r236290 = r236289 * r236289;
double r236291 = 1.0613830190264715e-13;
bool r236292 = r236290 <= r236291;
double r236293 = 911.531239174288;
bool r236294 = r236290 <= r236293;
double r236295 = !r236294;
bool r236296 = r236292 || r236295;
double r236297 = a;
double r236298 = 4.0;
double r236299 = pow(r236297, r236298);
double r236300 = pow(r236289, r236298);
double r236301 = 2.0;
double r236302 = pow(r236297, r236301);
double r236303 = pow(r236289, r236301);
double r236304 = r236302 * r236303;
double r236305 = r236301 * r236304;
double r236306 = r236300 + r236305;
double r236307 = r236299 + r236306;
double r236308 = 1.0;
double r236309 = r236307 - r236308;
double r236310 = r236297 * r236297;
double r236311 = r236310 + r236290;
double r236312 = 2.0;
double r236313 = pow(r236311, r236312);
double r236314 = 3.0;
double r236315 = pow(r236313, r236314);
double r236316 = cbrt(r236315);
double r236317 = 4.0;
double r236318 = r236317 * r236290;
double r236319 = r236316 + r236318;
double r236320 = r236319 - r236308;
double r236321 = r236296 ? r236309 : r236320;
return r236321;
}



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))