\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 r2180067 = th;
double r2180068 = cos(r2180067);
double r2180069 = 2.0;
double r2180070 = sqrt(r2180069);
double r2180071 = r2180068 / r2180070;
double r2180072 = a1;
double r2180073 = r2180072 * r2180072;
double r2180074 = r2180071 * r2180073;
double r2180075 = a2;
double r2180076 = r2180075 * r2180075;
double r2180077 = r2180071 * r2180076;
double r2180078 = r2180074 + r2180077;
return r2180078;
}
double f(double a1, double a2, double th) {
double r2180079 = a2;
double r2180080 = r2180079 * r2180079;
double r2180081 = th;
double r2180082 = cos(r2180081);
double r2180083 = 2.0;
double r2180084 = sqrt(r2180083);
double r2180085 = sqrt(r2180084);
double r2180086 = r2180082 / r2180085;
double r2180087 = r2180086 / r2180085;
double r2180088 = r2180080 * r2180087;
double r2180089 = a1;
double r2180090 = r2180089 * r2180089;
double r2180091 = r2180087 * r2180090;
double r2180092 = r2180088 + r2180091;
return r2180092;
}



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