\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}{\left(\sqrt[3]{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}} \cdot \sqrt[3]{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right) \cdot \sqrt[3]{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r60836 = 1.0;
double r60837 = 2.0;
double r60838 = r60836 / r60837;
double r60839 = l;
double r60840 = r60837 * r60839;
double r60841 = Om;
double r60842 = r60840 / r60841;
double r60843 = pow(r60842, r60837);
double r60844 = kx;
double r60845 = sin(r60844);
double r60846 = pow(r60845, r60837);
double r60847 = ky;
double r60848 = sin(r60847);
double r60849 = pow(r60848, r60837);
double r60850 = r60846 + r60849;
double r60851 = r60843 * r60850;
double r60852 = r60836 + r60851;
double r60853 = sqrt(r60852);
double r60854 = r60836 / r60853;
double r60855 = r60836 + r60854;
double r60856 = r60838 * r60855;
double r60857 = sqrt(r60856);
return r60857;
}
double f(double l, double Om, double kx, double ky) {
double r60858 = 1.0;
double r60859 = 2.0;
double r60860 = r60858 / r60859;
double r60861 = l;
double r60862 = r60859 * r60861;
double r60863 = Om;
double r60864 = r60862 / r60863;
double r60865 = 2.0;
double r60866 = r60859 / r60865;
double r60867 = pow(r60864, r60866);
double r60868 = kx;
double r60869 = sin(r60868);
double r60870 = pow(r60869, r60859);
double r60871 = ky;
double r60872 = sin(r60871);
double r60873 = pow(r60872, r60859);
double r60874 = r60870 + r60873;
double r60875 = sqrt(r60874);
double r60876 = r60867 * r60875;
double r60877 = r60876 * r60876;
double r60878 = r60858 + r60877;
double r60879 = sqrt(r60878);
double r60880 = cbrt(r60879);
double r60881 = r60880 * r60880;
double r60882 = r60881 * r60880;
double r60883 = r60858 / r60882;
double r60884 = r60858 + r60883;
double r60885 = r60860 * r60884;
double r60886 = sqrt(r60885);
return r60886;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-sqr-sqrt1.8
Applied sqr-pow1.8
Applied unswap-sqr1.5
rmApplied add-cube-cbrt1.5
Final simplification1.5
herbie shell --seed 2020083 +o rules:numerics
(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))))))))))