\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\left(\left(\left(a \cdot \sqrt{\left(4 - 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}\right) \cdot \sqrt{\left(4 - 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}\right) \cdot a + -1\right) + b \cdot \left(\left(\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)\right) \cdot b\right)double f(double a, double b) {
double r9847796 = a;
double r9847797 = r9847796 * r9847796;
double r9847798 = b;
double r9847799 = r9847798 * r9847798;
double r9847800 = r9847797 + r9847799;
double r9847801 = 2.0;
double r9847802 = pow(r9847800, r9847801);
double r9847803 = 4.0;
double r9847804 = 1.0;
double r9847805 = r9847804 - r9847796;
double r9847806 = r9847797 * r9847805;
double r9847807 = 3.0;
double r9847808 = r9847807 + r9847796;
double r9847809 = r9847799 * r9847808;
double r9847810 = r9847806 + r9847809;
double r9847811 = r9847803 * r9847810;
double r9847812 = r9847802 + r9847811;
double r9847813 = r9847812 - r9847804;
return r9847813;
}
double f(double a, double b) {
double r9847814 = a;
double r9847815 = 4.0;
double r9847816 = r9847815 * r9847814;
double r9847817 = r9847815 - r9847816;
double r9847818 = b;
double r9847819 = r9847818 * r9847818;
double r9847820 = r9847814 * r9847814;
double r9847821 = r9847819 + r9847820;
double r9847822 = r9847817 + r9847821;
double r9847823 = sqrt(r9847822);
double r9847824 = r9847814 * r9847823;
double r9847825 = r9847824 * r9847823;
double r9847826 = r9847825 * r9847814;
double r9847827 = -1.0;
double r9847828 = r9847826 + r9847827;
double r9847829 = 12.0;
double r9847830 = r9847829 + r9847816;
double r9847831 = r9847830 + r9847821;
double r9847832 = r9847831 * r9847818;
double r9847833 = r9847818 * r9847832;
double r9847834 = r9847828 + r9847833;
return r9847834;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
rmApplied associate-*l*0.2
rmApplied associate-*l*0.1
rmApplied add-sqr-sqrt0.1
Applied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2019152
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))