\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} + 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) - 1double f(double a, double b) {
double r99161 = a;
double r99162 = r99161 * r99161;
double r99163 = b;
double r99164 = r99163 * r99163;
double r99165 = r99162 + r99164;
double r99166 = 2.0;
double r99167 = pow(r99165, r99166);
double r99168 = 4.0;
double r99169 = 1.0;
double r99170 = r99169 + r99161;
double r99171 = r99162 * r99170;
double r99172 = 3.0;
double r99173 = r99172 * r99161;
double r99174 = r99169 - r99173;
double r99175 = r99164 * r99174;
double r99176 = r99171 + r99175;
double r99177 = r99168 * r99176;
double r99178 = r99167 + r99177;
double r99179 = r99178 - r99169;
return r99179;
}
double f(double a, double b) {
double r99180 = a;
double r99181 = r99180 * r99180;
double r99182 = b;
double r99183 = r99182 * r99182;
double r99184 = r99181 + r99183;
double r99185 = 2.0;
double r99186 = pow(r99184, r99185);
double r99187 = 4.0;
double r99188 = 1.0;
double r99189 = r99188 + r99180;
double r99190 = r99181 * r99189;
double r99191 = 3.0;
double r99192 = r99191 * r99180;
double r99193 = r99188 - r99192;
double r99194 = r99183 * r99193;
double r99195 = r99190 + r99194;
double r99196 = r99187 * r99195;
double r99197 = r99186 + r99196;
double r99198 = r99197 - r99188;
return r99198;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020024
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))