\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{a2 \cdot \cos th}{\frac{\sqrt{2}}{a2}} + \frac{a1 \cdot a1}{\sqrt{2}} \cdot \cos thdouble f(double a1, double a2, double th) {
double r1397548 = th;
double r1397549 = cos(r1397548);
double r1397550 = 2.0;
double r1397551 = sqrt(r1397550);
double r1397552 = r1397549 / r1397551;
double r1397553 = a1;
double r1397554 = r1397553 * r1397553;
double r1397555 = r1397552 * r1397554;
double r1397556 = a2;
double r1397557 = r1397556 * r1397556;
double r1397558 = r1397552 * r1397557;
double r1397559 = r1397555 + r1397558;
return r1397559;
}
double f(double a1, double a2, double th) {
double r1397560 = a2;
double r1397561 = th;
double r1397562 = cos(r1397561);
double r1397563 = r1397560 * r1397562;
double r1397564 = 2.0;
double r1397565 = sqrt(r1397564);
double r1397566 = r1397565 / r1397560;
double r1397567 = r1397563 / r1397566;
double r1397568 = a1;
double r1397569 = r1397568 * r1397568;
double r1397570 = r1397569 / r1397565;
double r1397571 = r1397570 * r1397562;
double r1397572 = r1397567 + r1397571;
return r1397572;
}



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 div-inv0.5
Applied associate-*l*0.5
Simplified0.4
rmApplied associate-*r/0.4
Final simplification0.4
herbie shell --seed 2019133
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))