\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({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\sqrt[3]{\left(a \cdot a\right) \cdot \left(1 - a\right)} \cdot \sqrt[3]{\left(a \cdot a\right) \cdot \left(1 - a\right)}\right) \cdot \sqrt[3]{\left(a \cdot a\right) \cdot \left(1 - a\right)} + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r305086 = a;
double r305087 = r305086 * r305086;
double r305088 = b;
double r305089 = r305088 * r305088;
double r305090 = r305087 + r305089;
double r305091 = 2.0;
double r305092 = pow(r305090, r305091);
double r305093 = 4.0;
double r305094 = 1.0;
double r305095 = r305094 - r305086;
double r305096 = r305087 * r305095;
double r305097 = 3.0;
double r305098 = r305097 + r305086;
double r305099 = r305089 * r305098;
double r305100 = r305096 + r305099;
double r305101 = r305093 * r305100;
double r305102 = r305092 + r305101;
double r305103 = r305102 - r305094;
return r305103;
}
double f(double a, double b) {
double r305104 = a;
double r305105 = r305104 * r305104;
double r305106 = b;
double r305107 = r305106 * r305106;
double r305108 = r305105 + r305107;
double r305109 = 2.0;
double r305110 = pow(r305108, r305109);
double r305111 = 4.0;
double r305112 = 1.0;
double r305113 = r305112 - r305104;
double r305114 = r305105 * r305113;
double r305115 = cbrt(r305114);
double r305116 = r305115 * r305115;
double r305117 = r305116 * r305115;
double r305118 = 3.0;
double r305119 = r305118 + r305104;
double r305120 = r305107 * r305119;
double r305121 = r305117 + r305120;
double r305122 = r305111 * r305121;
double r305123 = r305110 + r305122;
double r305124 = r305123 - r305112;
return r305124;
}



Bits error versus a



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