\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{a1 \cdot a1 + a2 \cdot a2}}}double f(double a1, double a2, double th) {
double r64119 = th;
double r64120 = cos(r64119);
double r64121 = 2.0;
double r64122 = sqrt(r64121);
double r64123 = r64120 / r64122;
double r64124 = a1;
double r64125 = r64124 * r64124;
double r64126 = r64123 * r64125;
double r64127 = a2;
double r64128 = r64127 * r64127;
double r64129 = r64123 * r64128;
double r64130 = r64126 + r64129;
return r64130;
}
double f(double a1, double a2, double th) {
double r64131 = a1;
double r64132 = r64131 * r64131;
double r64133 = a2;
double r64134 = r64133 * r64133;
double r64135 = r64132 + r64134;
double r64136 = sqrt(r64135);
double r64137 = 2.0;
double r64138 = sqrt(r64137);
double r64139 = th;
double r64140 = cos(r64139);
double r64141 = r64138 / r64140;
double r64142 = r64141 / r64136;
double r64143 = r64136 / r64142;
return r64143;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
Simplified0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied associate-/l*0.5
rmApplied add-sqr-sqrt0.5
Applied associate-/l*0.5
Final simplification0.5
herbie shell --seed 2019208
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))