\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({\left(\mathsf{hypot}\left(a, b\right)\right)}^{\left(2 \cdot 2\right)} + 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 r101089 = a;
double r101090 = r101089 * r101089;
double r101091 = b;
double r101092 = r101091 * r101091;
double r101093 = r101090 + r101092;
double r101094 = 2.0;
double r101095 = pow(r101093, r101094);
double r101096 = 4.0;
double r101097 = 1.0;
double r101098 = r101097 + r101089;
double r101099 = r101090 * r101098;
double r101100 = 3.0;
double r101101 = r101100 * r101089;
double r101102 = r101097 - r101101;
double r101103 = r101092 * r101102;
double r101104 = r101099 + r101103;
double r101105 = r101096 * r101104;
double r101106 = r101095 + r101105;
double r101107 = r101106 - r101097;
return r101107;
}
double f(double a, double b) {
double r101108 = a;
double r101109 = b;
double r101110 = hypot(r101108, r101109);
double r101111 = 2.0;
double r101112 = 2.0;
double r101113 = r101111 * r101112;
double r101114 = pow(r101110, r101113);
double r101115 = 4.0;
double r101116 = r101108 * r101108;
double r101117 = 1.0;
double r101118 = r101117 + r101108;
double r101119 = r101116 * r101118;
double r101120 = r101109 * r101109;
double r101121 = 3.0;
double r101122 = r101121 * r101108;
double r101123 = r101117 - r101122;
double r101124 = r101120 * r101123;
double r101125 = r101119 + r101124;
double r101126 = r101115 * r101125;
double r101127 = r101114 + r101126;
double r101128 = r101127 - r101117;
return r101128;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied unpow-prod-down0.2
Applied fma-def0.2
rmApplied fma-udef0.2
Simplified0.0
Final simplification0.0
herbie shell --seed 2019195 +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))