\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\frac{a2}{\sqrt{2}} \cdot a2\right) \cdot \cos th + \left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt{2}}}} \cdot \left(a1 \cdot a1\right)\right) \cdot \frac{\cos th}{\sqrt{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}double f(double a1, double a2, double th) {
double r877211 = th;
double r877212 = cos(r877211);
double r877213 = 2.0;
double r877214 = sqrt(r877213);
double r877215 = r877212 / r877214;
double r877216 = a1;
double r877217 = r877216 * r877216;
double r877218 = r877215 * r877217;
double r877219 = a2;
double r877220 = r877219 * r877219;
double r877221 = r877215 * r877220;
double r877222 = r877218 + r877221;
return r877222;
}
double f(double a1, double a2, double th) {
double r877223 = a2;
double r877224 = 2.0;
double r877225 = sqrt(r877224);
double r877226 = r877223 / r877225;
double r877227 = r877226 * r877223;
double r877228 = th;
double r877229 = cos(r877228);
double r877230 = r877227 * r877229;
double r877231 = 1.0;
double r877232 = sqrt(r877225);
double r877233 = r877231 / r877232;
double r877234 = cbrt(r877225);
double r877235 = sqrt(r877234);
double r877236 = r877233 / r877235;
double r877237 = a1;
double r877238 = r877237 * r877237;
double r877239 = r877236 * r877238;
double r877240 = r877234 * r877234;
double r877241 = sqrt(r877240);
double r877242 = r877229 / r877241;
double r877243 = r877239 * r877242;
double r877244 = r877230 + r877243;
return r877244;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied div-inv0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-/r*0.5
rmApplied add-cube-cbrt0.5
Applied sqrt-prod0.5
Applied div-inv0.5
Applied times-frac0.5
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019154 +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))))