\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\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1double f(double a, double b) {
double r4750652 = a;
double r4750653 = r4750652 * r4750652;
double r4750654 = b;
double r4750655 = r4750654 * r4750654;
double r4750656 = r4750653 + r4750655;
double r4750657 = 2.0;
double r4750658 = pow(r4750656, r4750657);
double r4750659 = 4.0;
double r4750660 = 1.0;
double r4750661 = r4750660 + r4750652;
double r4750662 = r4750653 * r4750661;
double r4750663 = 3.0;
double r4750664 = r4750663 * r4750652;
double r4750665 = r4750660 - r4750664;
double r4750666 = r4750655 * r4750665;
double r4750667 = r4750662 + r4750666;
double r4750668 = r4750659 * r4750667;
double r4750669 = r4750658 + r4750668;
double r4750670 = r4750669 - r4750660;
return r4750670;
}
double f(double a, double b) {
double r4750671 = a;
double r4750672 = r4750671 * r4750671;
double r4750673 = b;
double r4750674 = r4750673 * r4750673;
double r4750675 = r4750672 + r4750674;
double r4750676 = 2.0;
double r4750677 = pow(r4750675, r4750676);
double r4750678 = 1.0;
double r4750679 = r4750671 + r4750678;
double r4750680 = r4750672 * r4750679;
double r4750681 = 3.0;
double r4750682 = r4750681 * r4750671;
double r4750683 = r4750678 - r4750682;
double r4750684 = r4750674 * r4750683;
double r4750685 = r4750680 + r4750684;
double r4750686 = 4.0;
double r4750687 = r4750685 * r4750686;
double r4750688 = r4750677 + r4750687;
double r4750689 = sqrt(r4750688);
double r4750690 = r4750689 * r4750689;
double r4750691 = r4750690 - r4750678;
return r4750691;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2019168
(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))