\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(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right) + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r218109 = a;
double r218110 = r218109 * r218109;
double r218111 = b;
double r218112 = r218111 * r218111;
double r218113 = r218110 + r218112;
double r218114 = 2.0;
double r218115 = pow(r218113, r218114);
double r218116 = 4.0;
double r218117 = 1.0;
double r218118 = r218117 - r218109;
double r218119 = r218110 * r218118;
double r218120 = 3.0;
double r218121 = r218120 + r218109;
double r218122 = r218112 * r218121;
double r218123 = r218119 + r218122;
double r218124 = r218116 * r218123;
double r218125 = r218115 + r218124;
double r218126 = r218125 - r218117;
return r218126;
}
double f(double a, double b) {
double r218127 = 4.0;
double r218128 = a;
double r218129 = r218128 * r218128;
double r218130 = 1.0;
double r218131 = r218130 - r218128;
double r218132 = r218129 * r218131;
double r218133 = b;
double r218134 = r218133 * r218133;
double r218135 = 3.0;
double r218136 = r218135 + r218128;
double r218137 = r218134 * r218136;
double r218138 = r218132 + r218137;
double r218139 = r218127 * r218138;
double r218140 = r218129 + r218134;
double r218141 = 2.0;
double r218142 = pow(r218140, r218141);
double r218143 = r218139 + r218142;
double r218144 = r218143 - r218130;
return r218144;
}



Bits error versus a



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