\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}}} + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right)double f(double a1, double a2, double th) {
double r3115100 = th;
double r3115101 = cos(r3115100);
double r3115102 = 2.0;
double r3115103 = sqrt(r3115102);
double r3115104 = r3115101 / r3115103;
double r3115105 = a1;
double r3115106 = r3115105 * r3115105;
double r3115107 = r3115104 * r3115106;
double r3115108 = a2;
double r3115109 = r3115108 * r3115108;
double r3115110 = r3115104 * r3115109;
double r3115111 = r3115107 + r3115110;
return r3115111;
}
double f(double a1, double a2, double th) {
double r3115112 = a2;
double r3115113 = r3115112 * r3115112;
double r3115114 = th;
double r3115115 = cos(r3115114);
double r3115116 = 2.0;
double r3115117 = sqrt(r3115116);
double r3115118 = sqrt(r3115117);
double r3115119 = r3115115 / r3115118;
double r3115120 = r3115119 / r3115118;
double r3115121 = r3115113 * r3115120;
double r3115122 = a1;
double r3115123 = r3115122 * r3115122;
double r3115124 = r3115120 * r3115123;
double r3115125 = r3115121 + r3115124;
return r3115125;
}



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