\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{1}{\frac{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}double f(double a1, double a2, double th) {
double r2602604 = th;
double r2602605 = cos(r2602604);
double r2602606 = 2.0;
double r2602607 = sqrt(r2602606);
double r2602608 = r2602605 / r2602607;
double r2602609 = a1;
double r2602610 = r2602609 * r2602609;
double r2602611 = r2602608 * r2602610;
double r2602612 = a2;
double r2602613 = r2602612 * r2602612;
double r2602614 = r2602608 * r2602613;
double r2602615 = r2602611 + r2602614;
return r2602615;
}
double f(double a1, double a2, double th) {
double r2602616 = 1.0;
double r2602617 = 2.0;
double r2602618 = sqrt(r2602617);
double r2602619 = th;
double r2602620 = cos(r2602619);
double r2602621 = r2602618 / r2602620;
double r2602622 = a2;
double r2602623 = r2602622 * r2602622;
double r2602624 = a1;
double r2602625 = r2602624 * r2602624;
double r2602626 = r2602623 + r2602625;
double r2602627 = sqrt(r2602626);
double r2602628 = r2602621 / r2602627;
double r2602629 = r2602628 / r2602627;
double r2602630 = r2602616 / r2602629;
return r2602630;
}



Bits error versus a1



Bits error versus a2



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