\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} + 4 \cdot \left(b \cdot \left(\left(1 - a \cdot 3\right) \cdot b\right) + a \cdot \left(\left(a + 1\right) \cdot a\right)\right)}} \cdot \sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot \left(\left(1 - a \cdot 3\right) \cdot b\right) + a \cdot \left(\left(a + 1\right) \cdot a\right)\right)}}\right) \cdot \sqrt{4 \cdot \left(\left(1 - a \cdot 3\right) \cdot {b}^{2} + a \cdot \left(\left(a + 1\right) \cdot a\right)\right) + {\left({b}^{2} + a \cdot a\right)}^{2}} - 1double f(double a, double b) {
double r141763 = a;
double r141764 = r141763 * r141763;
double r141765 = b;
double r141766 = r141765 * r141765;
double r141767 = r141764 + r141766;
double r141768 = 2.0;
double r141769 = pow(r141767, r141768);
double r141770 = 4.0;
double r141771 = 1.0;
double r141772 = r141771 + r141763;
double r141773 = r141764 * r141772;
double r141774 = 3.0;
double r141775 = r141774 * r141763;
double r141776 = r141771 - r141775;
double r141777 = r141766 * r141776;
double r141778 = r141773 + r141777;
double r141779 = r141770 * r141778;
double r141780 = r141769 + r141779;
double r141781 = r141780 - r141771;
return r141781;
}
double f(double a, double b) {
double r141782 = a;
double r141783 = r141782 * r141782;
double r141784 = b;
double r141785 = r141784 * r141784;
double r141786 = r141783 + r141785;
double r141787 = 2.0;
double r141788 = pow(r141786, r141787);
double r141789 = 4.0;
double r141790 = 1.0;
double r141791 = 3.0;
double r141792 = r141782 * r141791;
double r141793 = r141790 - r141792;
double r141794 = r141793 * r141784;
double r141795 = r141784 * r141794;
double r141796 = r141782 + r141790;
double r141797 = r141796 * r141782;
double r141798 = r141782 * r141797;
double r141799 = r141795 + r141798;
double r141800 = r141789 * r141799;
double r141801 = r141788 + r141800;
double r141802 = sqrt(r141801);
double r141803 = sqrt(r141802);
double r141804 = r141803 * r141803;
double r141805 = 2.0;
double r141806 = pow(r141784, r141805);
double r141807 = r141793 * r141806;
double r141808 = r141807 + r141798;
double r141809 = r141789 * r141808;
double r141810 = r141806 + r141783;
double r141811 = pow(r141810, r141787);
double r141812 = r141809 + r141811;
double r141813 = sqrt(r141812);
double r141814 = r141804 * r141813;
double r141815 = r141814 - r141790;
return r141815;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Simplified0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019196
(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))