\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\cos th \cdot \left(a2 \cdot \frac{a2}{\sqrt{2}}\right) + \frac{a1 \cdot \cos th}{\frac{\sqrt{\sqrt{2}}}{\frac{a1}{\sqrt{\sqrt{2}}}}}double f(double a1, double a2, double th) {
double r1394364 = th;
double r1394365 = cos(r1394364);
double r1394366 = 2.0;
double r1394367 = sqrt(r1394366);
double r1394368 = r1394365 / r1394367;
double r1394369 = a1;
double r1394370 = r1394369 * r1394369;
double r1394371 = r1394368 * r1394370;
double r1394372 = a2;
double r1394373 = r1394372 * r1394372;
double r1394374 = r1394368 * r1394373;
double r1394375 = r1394371 + r1394374;
return r1394375;
}
double f(double a1, double a2, double th) {
double r1394376 = th;
double r1394377 = cos(r1394376);
double r1394378 = a2;
double r1394379 = 2.0;
double r1394380 = sqrt(r1394379);
double r1394381 = r1394378 / r1394380;
double r1394382 = r1394378 * r1394381;
double r1394383 = r1394377 * r1394382;
double r1394384 = a1;
double r1394385 = r1394384 * r1394377;
double r1394386 = sqrt(r1394380);
double r1394387 = r1394384 / r1394386;
double r1394388 = r1394386 / r1394387;
double r1394389 = r1394385 / r1394388;
double r1394390 = r1394383 + r1394389;
return r1394390;
}



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
Taylor expanded around inf 0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied associate-/l*0.5
Final simplification0.5
herbie shell --seed 2019142
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))