\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(1 - 3 \cdot a\right)\right)\right) - 1\mathsf{fma}\left(a \cdot a + b \cdot b, a \cdot a + b \cdot b, 4 \cdot \left(\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right) + \left(a \cdot a\right) \cdot \left(a + 1\right)\right)\right) - 1double f(double a, double b) {
double r3132575 = a;
double r3132576 = r3132575 * r3132575;
double r3132577 = b;
double r3132578 = r3132577 * r3132577;
double r3132579 = r3132576 + r3132578;
double r3132580 = 2.0;
double r3132581 = pow(r3132579, r3132580);
double r3132582 = 4.0;
double r3132583 = 1.0;
double r3132584 = r3132583 + r3132575;
double r3132585 = r3132576 * r3132584;
double r3132586 = 3.0;
double r3132587 = r3132586 * r3132575;
double r3132588 = r3132583 - r3132587;
double r3132589 = r3132578 * r3132588;
double r3132590 = r3132585 + r3132589;
double r3132591 = r3132582 * r3132590;
double r3132592 = r3132581 + r3132591;
double r3132593 = r3132592 - r3132583;
return r3132593;
}
double f(double a, double b) {
double r3132594 = a;
double r3132595 = r3132594 * r3132594;
double r3132596 = b;
double r3132597 = r3132596 * r3132596;
double r3132598 = r3132595 + r3132597;
double r3132599 = 4.0;
double r3132600 = 1.0;
double r3132601 = 3.0;
double r3132602 = r3132601 * r3132594;
double r3132603 = r3132600 - r3132602;
double r3132604 = r3132597 * r3132603;
double r3132605 = r3132594 + r3132600;
double r3132606 = r3132595 * r3132605;
double r3132607 = r3132604 + r3132606;
double r3132608 = r3132599 * r3132607;
double r3132609 = fma(r3132598, r3132598, r3132608);
double r3132610 = r3132609 - r3132600;
return r3132610;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied unpow20.2
Applied fma-def0.2
Final simplification0.2
herbie shell --seed 2019152 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))