\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\sqrt{{\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)} \cdot \sqrt{{\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)} - 1double f(double a, double b) {
double r155098 = a;
double r155099 = r155098 * r155098;
double r155100 = b;
double r155101 = r155100 * r155100;
double r155102 = r155099 + r155101;
double r155103 = 2.0;
double r155104 = pow(r155102, r155103);
double r155105 = 4.0;
double r155106 = 1.0;
double r155107 = r155106 + r155098;
double r155108 = r155099 * r155107;
double r155109 = 3.0;
double r155110 = r155109 * r155098;
double r155111 = r155106 - r155110;
double r155112 = r155101 * r155111;
double r155113 = r155108 + r155112;
double r155114 = r155105 * r155113;
double r155115 = r155104 + r155114;
double r155116 = r155115 - r155106;
return r155116;
}
double f(double a, double b) {
double r155117 = a;
double r155118 = r155117 * r155117;
double r155119 = b;
double r155120 = r155119 * r155119;
double r155121 = r155118 + r155120;
double r155122 = 2.0;
double r155123 = pow(r155121, r155122);
double r155124 = 4.0;
double r155125 = 1.0;
double r155126 = r155125 + r155117;
double r155127 = r155118 * r155126;
double r155128 = 3.0;
double r155129 = r155128 * r155117;
double r155130 = r155125 - r155129;
double r155131 = r155120 * r155130;
double r155132 = r155127 + r155131;
double r155133 = r155124 * r155132;
double r155134 = r155123 + r155133;
double r155135 = sqrt(r155134);
double r155136 = r155135 * r155135;
double r155137 = r155136 - r155125;
return r155137;
}



Bits error versus a



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