\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({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(1 + a\right)\right) \cdot 4\right) + \left(\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r243121 = a;
double r243122 = r243121 * r243121;
double r243123 = b;
double r243124 = r243123 * r243123;
double r243125 = r243122 + r243124;
double r243126 = 2.0;
double r243127 = pow(r243125, r243126);
double r243128 = 4.0;
double r243129 = 1.0;
double r243130 = r243129 + r243121;
double r243131 = r243122 * r243130;
double r243132 = 3.0;
double r243133 = r243132 * r243121;
double r243134 = r243129 - r243133;
double r243135 = r243124 * r243134;
double r243136 = r243131 + r243135;
double r243137 = r243128 * r243136;
double r243138 = r243127 + r243137;
double r243139 = r243138 - r243129;
return r243139;
}
double f(double a, double b) {
double r243140 = a;
double r243141 = r243140 * r243140;
double r243142 = b;
double r243143 = r243142 * r243142;
double r243144 = r243141 + r243143;
double r243145 = 2.0;
double r243146 = pow(r243144, r243145);
double r243147 = 1.0;
double r243148 = r243147 + r243140;
double r243149 = r243141 * r243148;
double r243150 = 4.0;
double r243151 = r243149 * r243150;
double r243152 = r243146 + r243151;
double r243153 = 3.0;
double r243154 = r243153 * r243140;
double r243155 = r243147 - r243154;
double r243156 = r243143 * r243155;
double r243157 = r243156 * r243150;
double r243158 = r243152 + r243157;
double r243159 = r243158 - r243147;
return r243159;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied distribute-rgt-in0.2
Applied associate-+r+0.2
Final simplification0.2
herbie shell --seed 2019199
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))