\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)a2 \cdot \frac{a2 \cdot \cos th}{\sqrt{2}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\sqrt{2}}double f(double a1, double a2, double th) {
double r2687828 = th;
double r2687829 = cos(r2687828);
double r2687830 = 2.0;
double r2687831 = sqrt(r2687830);
double r2687832 = r2687829 / r2687831;
double r2687833 = a1;
double r2687834 = r2687833 * r2687833;
double r2687835 = r2687832 * r2687834;
double r2687836 = a2;
double r2687837 = r2687836 * r2687836;
double r2687838 = r2687832 * r2687837;
double r2687839 = r2687835 + r2687838;
return r2687839;
}
double f(double a1, double a2, double th) {
double r2687840 = a2;
double r2687841 = th;
double r2687842 = cos(r2687841);
double r2687843 = r2687840 * r2687842;
double r2687844 = 2.0;
double r2687845 = sqrt(r2687844);
double r2687846 = r2687843 / r2687845;
double r2687847 = r2687840 * r2687846;
double r2687848 = a1;
double r2687849 = r2687848 * r2687848;
double r2687850 = r2687842 / r2687845;
double r2687851 = r2687849 * r2687850;
double r2687852 = r2687847 + r2687851;
return r2687852;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
Taylor expanded around inf 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019143 +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))))