\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(\left(\left(\sqrt[3]{\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]{\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]{\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)}\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(a \cdot a + b \cdot b\right)}^{2} - 1\right)double f(double a, double b) {
double r270180 = a;
double r270181 = r270180 * r270180;
double r270182 = b;
double r270183 = r270182 * r270182;
double r270184 = r270181 + r270183;
double r270185 = 2.0;
double r270186 = pow(r270184, r270185);
double r270187 = 4.0;
double r270188 = 1.0;
double r270189 = r270188 + r270180;
double r270190 = r270181 * r270189;
double r270191 = 3.0;
double r270192 = r270191 * r270180;
double r270193 = r270188 - r270192;
double r270194 = r270183 * r270193;
double r270195 = r270190 + r270194;
double r270196 = r270187 * r270195;
double r270197 = r270186 + r270196;
double r270198 = r270197 - r270188;
return r270198;
}
double f(double a, double b) {
double r270199 = 4.0;
double r270200 = a;
double r270201 = r270200 * r270200;
double r270202 = 1.0;
double r270203 = r270202 + r270200;
double r270204 = b;
double r270205 = r270204 * r270204;
double r270206 = 3.0;
double r270207 = r270206 * r270200;
double r270208 = r270202 - r270207;
double r270209 = r270205 * r270208;
double r270210 = fma(r270201, r270203, r270209);
double r270211 = cbrt(r270210);
double r270212 = cbrt(r270211);
double r270213 = r270212 * r270212;
double r270214 = r270213 * r270212;
double r270215 = r270214 * r270211;
double r270216 = r270215 * r270211;
double r270217 = r270201 + r270205;
double r270218 = 2.0;
double r270219 = pow(r270217, r270218);
double r270220 = r270219 - r270202;
double r270221 = fma(r270199, r270216, r270220);
return r270221;
}



Bits error versus a



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