\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(\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4}} \cdot \sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4}}\right) \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1double f(double a, double b) {
double r4449648 = a;
double r4449649 = r4449648 * r4449648;
double r4449650 = b;
double r4449651 = r4449650 * r4449650;
double r4449652 = r4449649 + r4449651;
double r4449653 = 2.0;
double r4449654 = pow(r4449652, r4449653);
double r4449655 = 4.0;
double r4449656 = 1.0;
double r4449657 = r4449656 + r4449648;
double r4449658 = r4449649 * r4449657;
double r4449659 = 3.0;
double r4449660 = r4449659 * r4449648;
double r4449661 = r4449656 - r4449660;
double r4449662 = r4449651 * r4449661;
double r4449663 = r4449658 + r4449662;
double r4449664 = r4449655 * r4449663;
double r4449665 = r4449654 + r4449664;
double r4449666 = r4449665 - r4449656;
return r4449666;
}
double f(double a, double b) {
double r4449667 = a;
double r4449668 = r4449667 * r4449667;
double r4449669 = b;
double r4449670 = r4449669 * r4449669;
double r4449671 = r4449668 + r4449670;
double r4449672 = 2.0;
double r4449673 = pow(r4449671, r4449672);
double r4449674 = 1.0;
double r4449675 = r4449667 + r4449674;
double r4449676 = r4449668 * r4449675;
double r4449677 = 3.0;
double r4449678 = r4449677 * r4449667;
double r4449679 = r4449674 - r4449678;
double r4449680 = r4449670 * r4449679;
double r4449681 = r4449676 + r4449680;
double r4449682 = 4.0;
double r4449683 = r4449681 * r4449682;
double r4449684 = r4449673 + r4449683;
double r4449685 = sqrt(r4449684);
double r4449686 = sqrt(r4449685);
double r4449687 = r4449686 * r4449686;
double r4449688 = r4449687 * r4449685;
double r4449689 = r4449688 - r4449674;
return r4449689;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2019192 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))