\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(\mathsf{fma}\left(b \cdot b, 1 - 3 \cdot a, \mathsf{fma}\left(a \cdot a, a, a \cdot a\right)\right), 4, \mathsf{fma}\left(\left(a \cdot b\right) \cdot \left(a \cdot b\right), 2, {b}^{4} + {a}^{4}\right) - 1\right)double f(double a, double b) {
double r4681495 = a;
double r4681496 = r4681495 * r4681495;
double r4681497 = b;
double r4681498 = r4681497 * r4681497;
double r4681499 = r4681496 + r4681498;
double r4681500 = 2.0;
double r4681501 = pow(r4681499, r4681500);
double r4681502 = 4.0;
double r4681503 = 1.0;
double r4681504 = r4681503 + r4681495;
double r4681505 = r4681496 * r4681504;
double r4681506 = 3.0;
double r4681507 = r4681506 * r4681495;
double r4681508 = r4681503 - r4681507;
double r4681509 = r4681498 * r4681508;
double r4681510 = r4681505 + r4681509;
double r4681511 = r4681502 * r4681510;
double r4681512 = r4681501 + r4681511;
double r4681513 = r4681512 - r4681503;
return r4681513;
}
double f(double a, double b) {
double r4681514 = b;
double r4681515 = r4681514 * r4681514;
double r4681516 = 1.0;
double r4681517 = 3.0;
double r4681518 = a;
double r4681519 = r4681517 * r4681518;
double r4681520 = r4681516 - r4681519;
double r4681521 = r4681518 * r4681518;
double r4681522 = fma(r4681521, r4681518, r4681521);
double r4681523 = fma(r4681515, r4681520, r4681522);
double r4681524 = 4.0;
double r4681525 = r4681518 * r4681514;
double r4681526 = r4681525 * r4681525;
double r4681527 = 2.0;
double r4681528 = pow(r4681514, r4681524);
double r4681529 = pow(r4681518, r4681524);
double r4681530 = r4681528 + r4681529;
double r4681531 = fma(r4681526, r4681527, r4681530);
double r4681532 = r4681531 - r4681516;
double r4681533 = fma(r4681523, r4681524, r4681532);
return r4681533;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Taylor expanded around -inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019134 +o rules:numerics
(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))