\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{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \log \left(e^{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right)}}\right)}double f(double l, double Om, double kx, double ky) {
double r67789 = 1.0;
double r67790 = 2.0;
double r67791 = r67789 / r67790;
double r67792 = l;
double r67793 = r67790 * r67792;
double r67794 = Om;
double r67795 = r67793 / r67794;
double r67796 = pow(r67795, r67790);
double r67797 = kx;
double r67798 = sin(r67797);
double r67799 = pow(r67798, r67790);
double r67800 = ky;
double r67801 = sin(r67800);
double r67802 = pow(r67801, r67790);
double r67803 = r67799 + r67802;
double r67804 = r67796 * r67803;
double r67805 = r67789 + r67804;
double r67806 = sqrt(r67805);
double r67807 = r67789 / r67806;
double r67808 = r67789 + r67807;
double r67809 = r67791 * r67808;
double r67810 = sqrt(r67809);
return r67810;
}
double f(double l, double Om, double kx, double ky) {
double r67811 = 1.0;
double r67812 = 2.0;
double r67813 = r67811 / r67812;
double r67814 = l;
double r67815 = r67812 * r67814;
double r67816 = Om;
double r67817 = r67815 / r67816;
double r67818 = pow(r67817, r67812);
double r67819 = kx;
double r67820 = sin(r67819);
double r67821 = pow(r67820, r67812);
double r67822 = ky;
double r67823 = sin(r67822);
double r67824 = pow(r67823, r67812);
double r67825 = r67821 + r67824;
double r67826 = r67818 * r67825;
double r67827 = exp(r67826);
double r67828 = log(r67827);
double r67829 = r67811 + r67828;
double r67830 = sqrt(r67829);
double r67831 = r67811 / r67830;
double r67832 = r67811 + r67831;
double r67833 = r67813 * r67832;
double r67834 = sqrt(r67833);
return r67834;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.9
rmApplied add-log-exp2.0
Final simplification2.0
herbie shell --seed 2020036
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
:precision binary64
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))