\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}} + \frac{\cos th \cdot \left(a1 \cdot a1\right)}{\sqrt{2}}double f(double a1, double a2, double th) {
double r1369329 = th;
double r1369330 = cos(r1369329);
double r1369331 = 2.0;
double r1369332 = sqrt(r1369331);
double r1369333 = r1369330 / r1369332;
double r1369334 = a1;
double r1369335 = r1369334 * r1369334;
double r1369336 = r1369333 * r1369335;
double r1369337 = a2;
double r1369338 = r1369337 * r1369337;
double r1369339 = r1369333 * r1369338;
double r1369340 = r1369336 + r1369339;
return r1369340;
}
double f(double a1, double a2, double th) {
double r1369341 = th;
double r1369342 = cos(r1369341);
double r1369343 = a2;
double r1369344 = r1369343 * r1369343;
double r1369345 = r1369342 * r1369344;
double r1369346 = 2.0;
double r1369347 = sqrt(r1369346);
double r1369348 = r1369345 / r1369347;
double r1369349 = a1;
double r1369350 = r1369349 * r1369349;
double r1369351 = r1369342 * r1369350;
double r1369352 = r1369351 / r1369347;
double r1369353 = r1369348 + r1369352;
return r1369353;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied add-sqr-sqrt0.5
Applied associate-/r*0.5
Taylor expanded around -inf 0.5
Simplified0.5
Taylor expanded around inf 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019128
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))