\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\left(\left(b \cdot b\right) \cdot 4 + \mathsf{fma}\left(b \cdot b, \mathsf{fma}\left(b, b, \left(a \cdot a\right) \cdot 2\right), {a}^{4}\right)\right) - 1double f(double a, double b) {
double r3441095 = a;
double r3441096 = r3441095 * r3441095;
double r3441097 = b;
double r3441098 = r3441097 * r3441097;
double r3441099 = r3441096 + r3441098;
double r3441100 = 2.0;
double r3441101 = pow(r3441099, r3441100);
double r3441102 = 4.0;
double r3441103 = r3441102 * r3441098;
double r3441104 = r3441101 + r3441103;
double r3441105 = 1.0;
double r3441106 = r3441104 - r3441105;
return r3441106;
}
double f(double a, double b) {
double r3441107 = b;
double r3441108 = r3441107 * r3441107;
double r3441109 = 4.0;
double r3441110 = r3441108 * r3441109;
double r3441111 = a;
double r3441112 = r3441111 * r3441111;
double r3441113 = 2.0;
double r3441114 = r3441112 * r3441113;
double r3441115 = fma(r3441107, r3441107, r3441114);
double r3441116 = pow(r3441111, r3441109);
double r3441117 = fma(r3441108, r3441115, r3441116);
double r3441118 = r3441110 + r3441117;
double r3441119 = 1.0;
double r3441120 = r3441118 - r3441119;
return r3441120;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Taylor expanded around 0 0.0
Simplified0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019156 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))