\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\sqrt{{\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)} \cdot \left(\sqrt{\sqrt{{\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)}} \cdot \sqrt{\sqrt{{\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) - 1double f(double a, double b) {
double r120118 = a;
double r120119 = r120118 * r120118;
double r120120 = b;
double r120121 = r120120 * r120120;
double r120122 = r120119 + r120121;
double r120123 = 2.0;
double r120124 = pow(r120122, r120123);
double r120125 = 4.0;
double r120126 = 1.0;
double r120127 = r120126 + r120118;
double r120128 = r120119 * r120127;
double r120129 = 3.0;
double r120130 = r120129 * r120118;
double r120131 = r120126 - r120130;
double r120132 = r120121 * r120131;
double r120133 = r120128 + r120132;
double r120134 = r120125 * r120133;
double r120135 = r120124 + r120134;
double r120136 = r120135 - r120126;
return r120136;
}
double f(double a, double b) {
double r120137 = a;
double r120138 = r120137 * r120137;
double r120139 = b;
double r120140 = r120139 * r120139;
double r120141 = r120138 + r120140;
double r120142 = 2.0;
double r120143 = pow(r120141, r120142);
double r120144 = 4.0;
double r120145 = 1.0;
double r120146 = r120145 + r120137;
double r120147 = r120138 * r120146;
double r120148 = 3.0;
double r120149 = r120148 * r120137;
double r120150 = r120145 - r120149;
double r120151 = r120140 * r120150;
double r120152 = r120147 + r120151;
double r120153 = r120144 * r120152;
double r120154 = r120143 + r120153;
double r120155 = sqrt(r120154);
double r120156 = sqrt(r120155);
double r120157 = r120156 * r120156;
double r120158 = r120155 * r120157;
double r120159 = r120158 - r120145;
return r120159;
}



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 2019362
(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))