\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\begin{array}{l}
\mathbf{if}\;a \cdot a \le 1.0752595847695641 \cdot 10^{-43}:\\
\;\;\;\;\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} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\right) - 1\\
\end{array}double f(double a, double b) {
double r341107 = a;
double r341108 = r341107 * r341107;
double r341109 = b;
double r341110 = r341109 * r341109;
double r341111 = r341108 + r341110;
double r341112 = 2.0;
double r341113 = pow(r341111, r341112);
double r341114 = 4.0;
double r341115 = r341114 * r341110;
double r341116 = r341113 + r341115;
double r341117 = 1.0;
double r341118 = r341116 - r341117;
return r341118;
}
double f(double a, double b) {
double r341119 = a;
double r341120 = r341119 * r341119;
double r341121 = 1.075259584769564e-43;
bool r341122 = r341120 <= r341121;
double r341123 = b;
double r341124 = 4.0;
double r341125 = pow(r341123, r341124);
double r341126 = 2.0;
double r341127 = 2.0;
double r341128 = pow(r341119, r341127);
double r341129 = pow(r341123, r341127);
double r341130 = r341128 * r341129;
double r341131 = r341126 * r341130;
double r341132 = r341125 + r341131;
double r341133 = 4.0;
double r341134 = r341123 * r341123;
double r341135 = r341133 * r341134;
double r341136 = r341132 + r341135;
double r341137 = 1.0;
double r341138 = r341136 - r341137;
double r341139 = pow(r341119, r341124);
double r341140 = r341127 * r341130;
double r341141 = r341125 + r341140;
double r341142 = r341139 + r341141;
double r341143 = r341142 - r341137;
double r341144 = r341122 ? r341138 : r341143;
return r341144;
}



Bits error versus a



Bits error versus b
Results
if (* a a) < 1.075259584769564e-43Initial program 0.1
Taylor expanded around 0 0.0
if 1.075259584769564e-43 < (* a a) Initial program 0.4
Taylor expanded around inf 0.3
Final simplification0.1
herbie shell --seed 2020049
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))