\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 -0.982267028366309968845371258794330060482 \lor \neg \left(b \le 1.837689356044482025254183099605143070221\right):\\
\;\;\;\;{a}^{4} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left({a}^{4} + 4 \cdot {b}^{2}\right) - 1\\
\end{array}double f(double a, double b) {
double r112394 = a;
double r112395 = r112394 * r112394;
double r112396 = b;
double r112397 = r112396 * r112396;
double r112398 = r112395 + r112397;
double r112399 = 2.0;
double r112400 = pow(r112398, r112399);
double r112401 = 4.0;
double r112402 = r112401 * r112397;
double r112403 = r112400 + r112402;
double r112404 = 1.0;
double r112405 = r112403 - r112404;
return r112405;
}
double f(double a, double b) {
double r112406 = b;
double r112407 = -0.98226702836631;
bool r112408 = r112406 <= r112407;
double r112409 = 1.837689356044482;
bool r112410 = r112406 <= r112409;
double r112411 = !r112410;
bool r112412 = r112408 || r112411;
double r112413 = a;
double r112414 = 4.0;
double r112415 = pow(r112413, r112414);
double r112416 = pow(r112406, r112414);
double r112417 = 2.0;
double r112418 = pow(r112413, r112417);
double r112419 = pow(r112406, r112417);
double r112420 = r112418 * r112419;
double r112421 = r112417 * r112420;
double r112422 = r112416 + r112421;
double r112423 = r112415 + r112422;
double r112424 = 4.0;
double r112425 = r112424 * r112419;
double r112426 = r112415 + r112425;
double r112427 = 1.0;
double r112428 = r112426 - r112427;
double r112429 = r112412 ? r112423 : r112428;
return r112429;
}



Bits error versus a



Bits error versus b
Results
if b < -0.98226702836631 or 1.837689356044482 < b Initial program 0.5
Taylor expanded around inf 1.9
if -0.98226702836631 < b < 1.837689356044482Initial program 0.1
Taylor expanded around 0 0.3
Final simplification0.6
herbie shell --seed 2019347
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))