\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\sqrt{2}}double f(double a1, double a2, double th) {
double r5671567 = th;
double r5671568 = cos(r5671567);
double r5671569 = 2.0;
double r5671570 = sqrt(r5671569);
double r5671571 = r5671568 / r5671570;
double r5671572 = a1;
double r5671573 = r5671572 * r5671572;
double r5671574 = r5671571 * r5671573;
double r5671575 = a2;
double r5671576 = r5671575 * r5671575;
double r5671577 = r5671571 * r5671576;
double r5671578 = r5671574 + r5671577;
return r5671578;
}
double f(double a1, double a2, double th) {
double r5671579 = a2;
double r5671580 = r5671579 * r5671579;
double r5671581 = th;
double r5671582 = cos(r5671581);
double r5671583 = 2.0;
double r5671584 = sqrt(r5671583);
double r5671585 = sqrt(r5671584);
double r5671586 = r5671582 / r5671585;
double r5671587 = r5671586 / r5671585;
double r5671588 = r5671580 * r5671587;
double r5671589 = a1;
double r5671590 = r5671589 * r5671589;
double r5671591 = r5671582 / r5671584;
double r5671592 = r5671590 * r5671591;
double r5671593 = r5671588 + r5671592;
return r5671593;
}



Bits error versus a1



Bits error versus a2



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