\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\sqrt{\frac{\frac{1}{2}}{\sqrt{\log \left(e^{\sqrt{\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}\right) + 1}}\right)} \cdot \sqrt{\sqrt{\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}\right) + 1}}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1270717 = 1.0;
double r1270718 = 2.0;
double r1270719 = r1270717 / r1270718;
double r1270720 = l;
double r1270721 = r1270718 * r1270720;
double r1270722 = Om;
double r1270723 = r1270721 / r1270722;
double r1270724 = pow(r1270723, r1270718);
double r1270725 = kx;
double r1270726 = sin(r1270725);
double r1270727 = pow(r1270726, r1270718);
double r1270728 = ky;
double r1270729 = sin(r1270728);
double r1270730 = pow(r1270729, r1270718);
double r1270731 = r1270727 + r1270730;
double r1270732 = r1270724 * r1270731;
double r1270733 = r1270717 + r1270732;
double r1270734 = sqrt(r1270733);
double r1270735 = r1270717 / r1270734;
double r1270736 = r1270717 + r1270735;
double r1270737 = r1270719 * r1270736;
double r1270738 = sqrt(r1270737);
return r1270738;
}
double f(double l, double Om, double kx, double ky) {
double r1270739 = 0.5;
double r1270740 = ky;
double r1270741 = sin(r1270740);
double r1270742 = r1270741 * r1270741;
double r1270743 = kx;
double r1270744 = sin(r1270743);
double r1270745 = r1270744 * r1270744;
double r1270746 = r1270742 + r1270745;
double r1270747 = 2.0;
double r1270748 = l;
double r1270749 = r1270747 * r1270748;
double r1270750 = Om;
double r1270751 = r1270749 / r1270750;
double r1270752 = r1270751 * r1270751;
double r1270753 = r1270746 * r1270752;
double r1270754 = 1.0;
double r1270755 = r1270753 + r1270754;
double r1270756 = sqrt(r1270755);
double r1270757 = exp(r1270756);
double r1270758 = log(r1270757);
double r1270759 = sqrt(r1270758);
double r1270760 = sqrt(r1270756);
double r1270761 = r1270759 * r1270760;
double r1270762 = r1270739 / r1270761;
double r1270763 = r1270762 + r1270739;
double r1270764 = sqrt(r1270763);
return r1270764;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
Simplified1.8
rmApplied add-sqr-sqrt1.8
rmApplied add-log-exp1.9
Final simplification1.9
herbie shell --seed 2019144
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))