\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}}double f(double a1, double a2, double th) {
double r70974 = th;
double r70975 = cos(r70974);
double r70976 = 2.0;
double r70977 = sqrt(r70976);
double r70978 = r70975 / r70977;
double r70979 = a1;
double r70980 = r70979 * r70979;
double r70981 = r70978 * r70980;
double r70982 = a2;
double r70983 = r70982 * r70982;
double r70984 = r70978 * r70983;
double r70985 = r70981 + r70984;
return r70985;
}
double f(double a1, double a2, double th) {
double r70986 = th;
double r70987 = cos(r70986);
double r70988 = a1;
double r70989 = a2;
double r70990 = r70989 * r70989;
double r70991 = fma(r70988, r70988, r70990);
double r70992 = r70987 * r70991;
double r70993 = 2.0;
double r70994 = sqrt(r70993);
double r70995 = cbrt(r70994);
double r70996 = r70995 * r70995;
double r70997 = r70992 / r70996;
double r70998 = r70997 / r70995;
return r70998;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Initial program 0.5
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2019212 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))