\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(4 \cdot \left(\left(a \cdot a + b \cdot b\right) + -3 \cdot \left(a \cdot \left(b \cdot b\right)\right)\right) + \left(-1 + {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right)\right) + \left(\sqrt[3]{a} \cdot \left(\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \left(a \cdot a\right)\right)\right) \cdot 4double f(double a, double b) {
double r7878127 = a;
double r7878128 = r7878127 * r7878127;
double r7878129 = b;
double r7878130 = r7878129 * r7878129;
double r7878131 = r7878128 + r7878130;
double r7878132 = 2.0;
double r7878133 = pow(r7878131, r7878132);
double r7878134 = 4.0;
double r7878135 = 1.0;
double r7878136 = r7878135 + r7878127;
double r7878137 = r7878128 * r7878136;
double r7878138 = 3.0;
double r7878139 = r7878138 * r7878127;
double r7878140 = r7878135 - r7878139;
double r7878141 = r7878130 * r7878140;
double r7878142 = r7878137 + r7878141;
double r7878143 = r7878134 * r7878142;
double r7878144 = r7878133 + r7878143;
double r7878145 = r7878144 - r7878135;
return r7878145;
}
double f(double a, double b) {
double r7878146 = 4.0;
double r7878147 = a;
double r7878148 = r7878147 * r7878147;
double r7878149 = b;
double r7878150 = r7878149 * r7878149;
double r7878151 = r7878148 + r7878150;
double r7878152 = -3.0;
double r7878153 = r7878147 * r7878150;
double r7878154 = r7878152 * r7878153;
double r7878155 = r7878151 + r7878154;
double r7878156 = r7878146 * r7878155;
double r7878157 = -1.0;
double r7878158 = sqrt(r7878151);
double r7878159 = pow(r7878158, r7878146);
double r7878160 = r7878157 + r7878159;
double r7878161 = r7878156 + r7878160;
double r7878162 = cbrt(r7878147);
double r7878163 = r7878162 * r7878162;
double r7878164 = r7878163 * r7878148;
double r7878165 = r7878162 * r7878164;
double r7878166 = r7878165 * r7878146;
double r7878167 = r7878161 + r7878166;
return r7878167;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*r*0.1
rmApplied add-sqr-sqrt0.1
Applied pow30.1
rmApplied pow10.1
Applied pow-prod-up0.0
Simplified0.0
rmApplied add-cube-cbrt0.0
Applied associate-*r*0.0
Final simplification0.0
herbie shell --seed 2019163
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))