\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(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) - 1double f(double a, double b) {
double r212807 = a;
double r212808 = r212807 * r212807;
double r212809 = b;
double r212810 = r212809 * r212809;
double r212811 = r212808 + r212810;
double r212812 = 2.0;
double r212813 = pow(r212811, r212812);
double r212814 = 4.0;
double r212815 = 1.0;
double r212816 = r212815 - r212807;
double r212817 = r212808 * r212816;
double r212818 = 3.0;
double r212819 = r212818 + r212807;
double r212820 = r212810 * r212819;
double r212821 = r212817 + r212820;
double r212822 = r212814 * r212821;
double r212823 = r212813 + r212822;
double r212824 = r212823 - r212815;
return r212824;
}
double f(double a, double b) {
double r212825 = a;
double r212826 = r212825 * r212825;
double r212827 = b;
double r212828 = r212827 * r212827;
double r212829 = r212826 + r212828;
double r212830 = 2.0;
double r212831 = pow(r212829, r212830);
double r212832 = 4.0;
double r212833 = 1.0;
double r212834 = r212833 - r212825;
double r212835 = r212826 * r212834;
double r212836 = 3.0;
double r212837 = r212836 + r212825;
double r212838 = r212828 * r212837;
double r212839 = r212835 + r212838;
double r212840 = r212832 * r212839;
double r212841 = r212831 + r212840;
double r212842 = r212841 - r212833;
return r212842;
}



Bits error versus a



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