\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 r10608662 = a;
double r10608663 = r10608662 * r10608662;
double r10608664 = b;
double r10608665 = r10608664 * r10608664;
double r10608666 = r10608663 + r10608665;
double r10608667 = 2.0;
double r10608668 = pow(r10608666, r10608667);
double r10608669 = 4.0;
double r10608670 = 1.0;
double r10608671 = r10608670 + r10608662;
double r10608672 = r10608663 * r10608671;
double r10608673 = 3.0;
double r10608674 = r10608673 * r10608662;
double r10608675 = r10608670 - r10608674;
double r10608676 = r10608665 * r10608675;
double r10608677 = r10608672 + r10608676;
double r10608678 = r10608669 * r10608677;
double r10608679 = r10608668 + r10608678;
double r10608680 = r10608679 - r10608670;
return r10608680;
}
double f(double a, double b) {
double r10608681 = a;
double r10608682 = r10608681 * r10608681;
double r10608683 = b;
double r10608684 = r10608683 * r10608683;
double r10608685 = r10608682 + r10608684;
double r10608686 = 2.0;
double r10608687 = pow(r10608685, r10608686);
double r10608688 = 1.0;
double r10608689 = r10608681 + r10608688;
double r10608690 = r10608682 * r10608689;
double r10608691 = 3.0;
double r10608692 = r10608691 * r10608681;
double r10608693 = r10608688 - r10608692;
double r10608694 = r10608684 * r10608693;
double r10608695 = r10608690 + r10608694;
double r10608696 = 4.0;
double r10608697 = r10608695 * r10608696;
double r10608698 = r10608687 + r10608697;
double r10608699 = sqrt(r10608698);
double r10608700 = r10608699 * r10608699;
double r10608701 = r10608700 - r10608688;
return r10608701;
}



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.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))