\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(\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) \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 r239060 = a;
double r239061 = r239060 * r239060;
double r239062 = b;
double r239063 = r239062 * r239062;
double r239064 = r239061 + r239063;
double r239065 = 2.0;
double r239066 = pow(r239064, r239065);
double r239067 = 4.0;
double r239068 = 1.0;
double r239069 = r239068 + r239060;
double r239070 = r239061 * r239069;
double r239071 = 3.0;
double r239072 = r239071 * r239060;
double r239073 = r239068 - r239072;
double r239074 = r239063 * r239073;
double r239075 = r239070 + r239074;
double r239076 = r239067 * r239075;
double r239077 = r239066 + r239076;
double r239078 = r239077 - r239068;
return r239078;
}
double f(double a, double b) {
double r239079 = a;
double r239080 = r239079 * r239079;
double r239081 = b;
double r239082 = r239081 * r239081;
double r239083 = r239080 + r239082;
double r239084 = 2.0;
double r239085 = pow(r239083, r239084);
double r239086 = 4.0;
double r239087 = 1.0;
double r239088 = r239087 + r239079;
double r239089 = r239080 * r239088;
double r239090 = 3.0;
double r239091 = r239090 * r239079;
double r239092 = r239087 - r239091;
double r239093 = r239082 * r239092;
double r239094 = r239089 + r239093;
double r239095 = r239086 * r239094;
double r239096 = r239085 + r239095;
double r239097 = sqrt(r239096);
double r239098 = sqrt(r239097);
double r239099 = r239098 * r239098;
double r239100 = r239099 * r239099;
double r239101 = r239100 - r239087;
return r239101;
}



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
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2020100
(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))