\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \frac{a1 \cdot a1}{\sqrt{2}} \cdot \cos thdouble f(double a1, double a2, double th) {
double r1309708 = th;
double r1309709 = cos(r1309708);
double r1309710 = 2.0;
double r1309711 = sqrt(r1309710);
double r1309712 = r1309709 / r1309711;
double r1309713 = a1;
double r1309714 = r1309713 * r1309713;
double r1309715 = r1309712 * r1309714;
double r1309716 = a2;
double r1309717 = r1309716 * r1309716;
double r1309718 = r1309712 * r1309717;
double r1309719 = r1309715 + r1309718;
return r1309719;
}
double f(double a1, double a2, double th) {
double r1309720 = a2;
double r1309721 = th;
double r1309722 = cos(r1309721);
double r1309723 = 2.0;
double r1309724 = sqrt(r1309723);
double r1309725 = r1309722 / r1309724;
double r1309726 = r1309720 * r1309725;
double r1309727 = r1309720 * r1309726;
double r1309728 = a1;
double r1309729 = r1309728 * r1309728;
double r1309730 = r1309729 / r1309724;
double r1309731 = r1309730 * r1309722;
double r1309732 = r1309727 + r1309731;
return r1309732;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied div-inv0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019133 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))