\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 + {\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}} \cdot \sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sqrt[3]{\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 r42906 = 1.0;
double r42907 = 2.0;
double r42908 = r42906 / r42907;
double r42909 = l;
double r42910 = r42907 * r42909;
double r42911 = Om;
double r42912 = r42910 / r42911;
double r42913 = pow(r42912, r42907);
double r42914 = kx;
double r42915 = sin(r42914);
double r42916 = pow(r42915, r42907);
double r42917 = ky;
double r42918 = sin(r42917);
double r42919 = pow(r42918, r42907);
double r42920 = r42916 + r42919;
double r42921 = r42913 * r42920;
double r42922 = r42906 + r42921;
double r42923 = sqrt(r42922);
double r42924 = r42906 / r42923;
double r42925 = r42906 + r42924;
double r42926 = r42908 * r42925;
double r42927 = sqrt(r42926);
return r42927;
}
double f(double l, double Om, double kx, double ky) {
double r42928 = 1.0;
double r42929 = 2.0;
double r42930 = r42928 / r42929;
double r42931 = l;
double r42932 = r42929 * r42931;
double r42933 = Om;
double r42934 = r42932 / r42933;
double r42935 = cbrt(r42934);
double r42936 = r42935 * r42935;
double r42937 = pow(r42936, r42929);
double r42938 = pow(r42935, r42929);
double r42939 = kx;
double r42940 = sin(r42939);
double r42941 = pow(r42940, r42929);
double r42942 = ky;
double r42943 = sin(r42942);
double r42944 = pow(r42943, r42929);
double r42945 = r42941 + r42944;
double r42946 = r42938 * r42945;
double r42947 = r42937 * r42946;
double r42948 = r42928 + r42947;
double r42949 = sqrt(r42948);
double r42950 = r42928 / r42949;
double r42951 = r42928 + r42950;
double r42952 = r42930 * r42951;
double r42953 = sqrt(r42952);
return r42953;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
Applied unpow-prod-down1.6
Applied associate-*l*1.5
Final simplification1.5
herbie shell --seed 2019353
(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))))))))))