\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\sqrt[3]{\frac{1}{2}} \cdot \left(\frac{\cos th \cdot {a2}^{2}}{\left|\sqrt[3]{\sqrt{2}}\right|} + \frac{\left(a1 \cdot \cos th\right) \cdot a1}{\left|\sqrt[3]{\sqrt{2}}\right|}\right)double f(double a1, double a2, double th) {
double r102371 = th;
double r102372 = cos(r102371);
double r102373 = 2.0;
double r102374 = sqrt(r102373);
double r102375 = r102372 / r102374;
double r102376 = a1;
double r102377 = r102376 * r102376;
double r102378 = r102375 * r102377;
double r102379 = a2;
double r102380 = r102379 * r102379;
double r102381 = r102375 * r102380;
double r102382 = r102378 + r102381;
return r102382;
}
double f(double a1, double a2, double th) {
double r102383 = 1.0;
double r102384 = 2.0;
double r102385 = r102383 / r102384;
double r102386 = cbrt(r102385);
double r102387 = th;
double r102388 = cos(r102387);
double r102389 = a2;
double r102390 = 2.0;
double r102391 = pow(r102389, r102390);
double r102392 = r102388 * r102391;
double r102393 = sqrt(r102384);
double r102394 = cbrt(r102393);
double r102395 = fabs(r102394);
double r102396 = r102392 / r102395;
double r102397 = a1;
double r102398 = r102397 * r102388;
double r102399 = r102398 * r102397;
double r102400 = r102399 / r102395;
double r102401 = r102396 + r102400;
double r102402 = r102386 * r102401;
return r102402;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 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.6
Applied div-inv0.6
Applied times-frac0.5
Simplified0.5
Taylor expanded around inf 0.6
Simplified0.4
rmApplied sqr-pow0.4
Applied associate-*l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019235
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))