\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)a2 \cdot \frac{a2 \cdot \cos th}{\sqrt{2}} + \left(\left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt{2}}}} \cdot a1\right) \cdot a1\right) \cdot \frac{\cos th}{\left|\sqrt[3]{\sqrt{2}}\right|}double f(double a1, double a2, double th) {
double r7911624 = th;
double r7911625 = cos(r7911624);
double r7911626 = 2.0;
double r7911627 = sqrt(r7911626);
double r7911628 = r7911625 / r7911627;
double r7911629 = a1;
double r7911630 = r7911629 * r7911629;
double r7911631 = r7911628 * r7911630;
double r7911632 = a2;
double r7911633 = r7911632 * r7911632;
double r7911634 = r7911628 * r7911633;
double r7911635 = r7911631 + r7911634;
return r7911635;
}
double f(double a1, double a2, double th) {
double r7911636 = a2;
double r7911637 = th;
double r7911638 = cos(r7911637);
double r7911639 = r7911636 * r7911638;
double r7911640 = 2.0;
double r7911641 = sqrt(r7911640);
double r7911642 = r7911639 / r7911641;
double r7911643 = r7911636 * r7911642;
double r7911644 = 1.0;
double r7911645 = sqrt(r7911641);
double r7911646 = r7911644 / r7911645;
double r7911647 = cbrt(r7911641);
double r7911648 = sqrt(r7911647);
double r7911649 = r7911646 / r7911648;
double r7911650 = a1;
double r7911651 = r7911649 * r7911650;
double r7911652 = r7911651 * r7911650;
double r7911653 = fabs(r7911647);
double r7911654 = r7911638 / r7911653;
double r7911655 = r7911652 * r7911654;
double r7911656 = r7911643 + r7911655;
return r7911656;
}



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
Taylor expanded around -inf 0.5
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied sqrt-prod0.5
Applied div-inv0.5
Applied times-frac0.4
Applied associate-*l*0.4
Simplified0.4
rmApplied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019121 +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))))