\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right)}\right) \cdot \frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}double f(double a1, double a2, double th) {
double r2626148 = th;
double r2626149 = cos(r2626148);
double r2626150 = 2.0;
double r2626151 = sqrt(r2626150);
double r2626152 = r2626149 / r2626151;
double r2626153 = a1;
double r2626154 = r2626153 * r2626153;
double r2626155 = r2626152 * r2626154;
double r2626156 = a2;
double r2626157 = r2626156 * r2626156;
double r2626158 = r2626152 * r2626157;
double r2626159 = r2626155 + r2626158;
return r2626159;
}
double f(double a1, double a2, double th) {
double r2626160 = th;
double r2626161 = cos(r2626160);
double r2626162 = a1;
double r2626163 = a2;
double r2626164 = r2626163 * r2626163;
double r2626165 = fma(r2626162, r2626162, r2626164);
double r2626166 = 2.0;
double r2626167 = sqrt(r2626166);
double r2626168 = cbrt(r2626167);
double r2626169 = cbrt(r2626168);
double r2626170 = r2626169 * r2626168;
double r2626171 = r2626170 * r2626170;
double r2626172 = r2626165 / r2626171;
double r2626173 = r2626161 * r2626172;
double r2626174 = 1.0;
double r2626175 = r2626174 / r2626169;
double r2626176 = r2626173 * r2626175;
return r2626176;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Initial program 0.5
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied associate-/r*0.4
rmApplied add-cube-cbrt0.4
Applied associate-/r*0.5
Simplified0.4
rmApplied div-inv0.4
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019171 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2.0)) (* a1 a1)) (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))