\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\mathsf{fma}\left(4, \left(\sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{2}\right) - 1double f(double a, double b) {
double r164152 = a;
double r164153 = r164152 * r164152;
double r164154 = b;
double r164155 = r164154 * r164154;
double r164156 = r164153 + r164155;
double r164157 = 2.0;
double r164158 = pow(r164156, r164157);
double r164159 = 4.0;
double r164160 = 1.0;
double r164161 = r164160 + r164152;
double r164162 = r164153 * r164161;
double r164163 = 3.0;
double r164164 = r164163 * r164152;
double r164165 = r164160 - r164164;
double r164166 = r164155 * r164165;
double r164167 = r164162 + r164166;
double r164168 = r164159 * r164167;
double r164169 = r164158 + r164168;
double r164170 = r164169 - r164160;
return r164170;
}
double f(double a, double b) {
double r164171 = 4.0;
double r164172 = a;
double r164173 = r164172 * r164172;
double r164174 = 1.0;
double r164175 = r164174 + r164172;
double r164176 = b;
double r164177 = r164176 * r164176;
double r164178 = 3.0;
double r164179 = r164178 * r164172;
double r164180 = r164174 - r164179;
double r164181 = r164177 * r164180;
double r164182 = fma(r164173, r164175, r164181);
double r164183 = cbrt(r164182);
double r164184 = r164183 * r164183;
double r164185 = r164184 * r164183;
double r164186 = fma(r164172, r164172, r164177);
double r164187 = 2.0;
double r164188 = pow(r164186, r164187);
double r164189 = fma(r164171, r164185, r164188);
double r164190 = r164189 - r164174;
return r164190;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2020045 +o rules:numerics
(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))