\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\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + b \cdot \left(b \cdot \left(3 + a\right)\right)\right)}} \cdot {\left(\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + b \cdot \left(b \cdot \left(3 + a\right)\right)\right)}}\right)}^{3} - 1double f(double a, double b) {
double r291811 = a;
double r291812 = r291811 * r291811;
double r291813 = b;
double r291814 = r291813 * r291813;
double r291815 = r291812 + r291814;
double r291816 = 2.0;
double r291817 = pow(r291815, r291816);
double r291818 = 4.0;
double r291819 = 1.0;
double r291820 = r291819 - r291811;
double r291821 = r291812 * r291820;
double r291822 = 3.0;
double r291823 = r291822 + r291811;
double r291824 = r291814 * r291823;
double r291825 = r291821 + r291824;
double r291826 = r291818 * r291825;
double r291827 = r291817 + r291826;
double r291828 = r291827 - r291819;
return r291828;
}
double f(double a, double b) {
double r291829 = a;
double r291830 = r291829 * r291829;
double r291831 = b;
double r291832 = r291831 * r291831;
double r291833 = r291830 + r291832;
double r291834 = 2.0;
double r291835 = pow(r291833, r291834);
double r291836 = 4.0;
double r291837 = 1.0;
double r291838 = r291837 - r291829;
double r291839 = r291830 * r291838;
double r291840 = 3.0;
double r291841 = r291840 + r291829;
double r291842 = r291831 * r291841;
double r291843 = r291831 * r291842;
double r291844 = r291839 + r291843;
double r291845 = r291836 * r291844;
double r291846 = r291835 + r291845;
double r291847 = sqrt(r291846);
double r291848 = sqrt(r291847);
double r291849 = 3.0;
double r291850 = pow(r291848, r291849);
double r291851 = r291848 * r291850;
double r291852 = r291851 - r291837;
return r291852;
}



Bits error versus a



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