\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}} + \frac{\frac{a1 \cdot \cos th}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\frac{\sqrt[3]{\sqrt{2}}}{a1}}double f(double a1, double a2, double th) {
double r19665120 = th;
double r19665121 = cos(r19665120);
double r19665122 = 2.0;
double r19665123 = sqrt(r19665122);
double r19665124 = r19665121 / r19665123;
double r19665125 = a1;
double r19665126 = r19665125 * r19665125;
double r19665127 = r19665124 * r19665126;
double r19665128 = a2;
double r19665129 = r19665128 * r19665128;
double r19665130 = r19665124 * r19665129;
double r19665131 = r19665127 + r19665130;
return r19665131;
}
double f(double a1, double a2, double th) {
double r19665132 = th;
double r19665133 = cos(r19665132);
double r19665134 = a2;
double r19665135 = r19665134 * r19665134;
double r19665136 = r19665133 * r19665135;
double r19665137 = 2.0;
double r19665138 = sqrt(r19665137);
double r19665139 = r19665136 / r19665138;
double r19665140 = a1;
double r19665141 = r19665140 * r19665133;
double r19665142 = cbrt(r19665138);
double r19665143 = r19665142 * r19665142;
double r19665144 = r19665141 / r19665143;
double r19665145 = r19665142 / r19665140;
double r19665146 = r19665144 / r19665145;
double r19665147 = r19665139 + r19665146;
return r19665147;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
Taylor expanded around inf 0.5
Simplified0.5
rmApplied associate-*l/0.5
rmApplied *-un-lft-identity0.5
Applied add-cube-cbrt0.5
Applied times-frac0.5
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2019104 +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))))