\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{\mathsf{fma}\left(\mathsf{fma}\left(b, b, \left(1 \cdot a\right) \cdot a\right), \sqrt{{\left(b \cdot b + a \cdot a\right)}^{2}}, 4 \cdot \left(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right)\right)} \cdot \sqrt{\mathsf{fma}\left(\mathsf{fma}\left(b, b, \left(1 \cdot a\right) \cdot a\right), \sqrt{{\left(b \cdot b + a \cdot a\right)}^{2}}, 4 \cdot \left(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right)\right)} - 1double f(double a, double b) {
double r4134087 = a;
double r4134088 = r4134087 * r4134087;
double r4134089 = b;
double r4134090 = r4134089 * r4134089;
double r4134091 = r4134088 + r4134090;
double r4134092 = 2.0;
double r4134093 = pow(r4134091, r4134092);
double r4134094 = 4.0;
double r4134095 = 1.0;
double r4134096 = r4134095 + r4134087;
double r4134097 = r4134088 * r4134096;
double r4134098 = 3.0;
double r4134099 = r4134098 * r4134087;
double r4134100 = r4134095 - r4134099;
double r4134101 = r4134090 * r4134100;
double r4134102 = r4134097 + r4134101;
double r4134103 = r4134094 * r4134102;
double r4134104 = r4134093 + r4134103;
double r4134105 = r4134104 - r4134095;
return r4134105;
}
double f(double a, double b) {
double r4134106 = b;
double r4134107 = 1.0;
double r4134108 = a;
double r4134109 = r4134107 * r4134108;
double r4134110 = r4134109 * r4134108;
double r4134111 = fma(r4134106, r4134106, r4134110);
double r4134112 = r4134106 * r4134106;
double r4134113 = r4134108 * r4134108;
double r4134114 = r4134112 + r4134113;
double r4134115 = 2.0;
double r4134116 = pow(r4134114, r4134115);
double r4134117 = sqrt(r4134116);
double r4134118 = 4.0;
double r4134119 = 3.0;
double r4134120 = r4134119 * r4134108;
double r4134121 = r4134107 - r4134120;
double r4134122 = r4134121 * r4134112;
double r4134123 = r4134108 + r4134107;
double r4134124 = r4134123 * r4134113;
double r4134125 = r4134122 + r4134124;
double r4134126 = r4134118 * r4134125;
double r4134127 = fma(r4134111, r4134117, r4134126);
double r4134128 = sqrt(r4134127);
double r4134129 = r4134128 * r4134128;
double r4134130 = r4134129 - r4134107;
return r4134130;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied fma-def0.2
Taylor expanded around 0 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2019179 +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))