\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\left({\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\right) - 1double f(double a, double b) {
double r14278769 = a;
double r14278770 = r14278769 * r14278769;
double r14278771 = b;
double r14278772 = r14278771 * r14278771;
double r14278773 = r14278770 + r14278772;
double r14278774 = 2.0;
double r14278775 = pow(r14278773, r14278774);
double r14278776 = 4.0;
double r14278777 = 1.0;
double r14278778 = r14278777 + r14278769;
double r14278779 = r14278770 * r14278778;
double r14278780 = 3.0;
double r14278781 = r14278780 * r14278769;
double r14278782 = r14278777 - r14278781;
double r14278783 = r14278772 * r14278782;
double r14278784 = r14278779 + r14278783;
double r14278785 = r14278776 * r14278784;
double r14278786 = r14278775 + r14278785;
double r14278787 = r14278786 - r14278777;
return r14278787;
}
double f(double a, double b) {
double r14278788 = a;
double r14278789 = r14278788 * r14278788;
double r14278790 = b;
double r14278791 = r14278790 * r14278790;
double r14278792 = r14278789 + r14278791;
double r14278793 = 2.0;
double r14278794 = pow(r14278792, r14278793);
double r14278795 = 1.0;
double r14278796 = r14278788 + r14278795;
double r14278797 = r14278789 * r14278796;
double r14278798 = 3.0;
double r14278799 = r14278798 * r14278788;
double r14278800 = r14278795 - r14278799;
double r14278801 = r14278791 * r14278800;
double r14278802 = r14278797 + r14278801;
double r14278803 = 4.0;
double r14278804 = r14278802 * r14278803;
double r14278805 = r14278794 + r14278804;
double r14278806 = r14278805 - r14278795;
return r14278806;
}



Bits error versus a



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