\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\mathsf{fma}\left(\mathsf{fma}\left(a \cdot a, 1 - a, \left(b \cdot b\right) \cdot \left(3 + a\right)\right), 4, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{2}\right) - 1double f(double a, double b) {
double r222204 = a;
double r222205 = r222204 * r222204;
double r222206 = b;
double r222207 = r222206 * r222206;
double r222208 = r222205 + r222207;
double r222209 = 2.0;
double r222210 = pow(r222208, r222209);
double r222211 = 4.0;
double r222212 = 1.0;
double r222213 = r222212 - r222204;
double r222214 = r222205 * r222213;
double r222215 = 3.0;
double r222216 = r222215 + r222204;
double r222217 = r222207 * r222216;
double r222218 = r222214 + r222217;
double r222219 = r222211 * r222218;
double r222220 = r222210 + r222219;
double r222221 = r222220 - r222212;
return r222221;
}
double f(double a, double b) {
double r222222 = a;
double r222223 = r222222 * r222222;
double r222224 = 1.0;
double r222225 = r222224 - r222222;
double r222226 = b;
double r222227 = r222226 * r222226;
double r222228 = 3.0;
double r222229 = r222228 + r222222;
double r222230 = r222227 * r222229;
double r222231 = fma(r222223, r222225, r222230);
double r222232 = 4.0;
double r222233 = fma(r222222, r222222, r222227);
double r222234 = 2.0;
double r222235 = pow(r222233, r222234);
double r222236 = fma(r222231, r222232, r222235);
double r222237 = r222236 - r222224;
return r222237;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019199 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))