\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(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} + 1\right) \cdot \left(\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4}} \cdot \sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4}} - 1\right)double f(double a, double b) {
double r10013095 = a;
double r10013096 = r10013095 * r10013095;
double r10013097 = b;
double r10013098 = r10013097 * r10013097;
double r10013099 = r10013096 + r10013098;
double r10013100 = 2.0;
double r10013101 = pow(r10013099, r10013100);
double r10013102 = 4.0;
double r10013103 = 1.0;
double r10013104 = r10013103 - r10013095;
double r10013105 = r10013096 * r10013104;
double r10013106 = 3.0;
double r10013107 = r10013106 + r10013095;
double r10013108 = r10013098 * r10013107;
double r10013109 = r10013105 + r10013108;
double r10013110 = r10013102 * r10013109;
double r10013111 = r10013101 + r10013110;
double r10013112 = r10013111 - r10013103;
return r10013112;
}
double f(double a, double b) {
double r10013113 = a;
double r10013114 = r10013113 * r10013113;
double r10013115 = b;
double r10013116 = r10013115 * r10013115;
double r10013117 = r10013114 + r10013116;
double r10013118 = 2.0;
double r10013119 = pow(r10013117, r10013118);
double r10013120 = 3.0;
double r10013121 = r10013113 + r10013120;
double r10013122 = r10013121 * r10013116;
double r10013123 = 1.0;
double r10013124 = r10013123 - r10013113;
double r10013125 = r10013114 * r10013124;
double r10013126 = r10013122 + r10013125;
double r10013127 = 4.0;
double r10013128 = r10013126 * r10013127;
double r10013129 = r10013119 + r10013128;
double r10013130 = sqrt(r10013129);
double r10013131 = r10013130 + r10013123;
double r10013132 = sqrt(r10013130);
double r10013133 = r10013132 * r10013132;
double r10013134 = r10013133 - r10013123;
double r10013135 = r10013131 * r10013134;
return r10013135;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied add-sqr-sqrt0.2
Applied difference-of-squares0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2019163
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))