\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{\frac{1}{\left|\left(\sqrt[3]{\left(\sqrt[3]{\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}\right) \cdot \sqrt[3]{\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}\right) \cdot \sqrt[3]{\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}\right|}}{\sqrt{\sqrt[3]{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r52877 = 1.0;
double r52878 = 2.0;
double r52879 = r52877 / r52878;
double r52880 = l;
double r52881 = r52878 * r52880;
double r52882 = Om;
double r52883 = r52881 / r52882;
double r52884 = pow(r52883, r52878);
double r52885 = kx;
double r52886 = sin(r52885);
double r52887 = pow(r52886, r52878);
double r52888 = ky;
double r52889 = sin(r52888);
double r52890 = pow(r52889, r52878);
double r52891 = r52887 + r52890;
double r52892 = r52884 * r52891;
double r52893 = r52877 + r52892;
double r52894 = sqrt(r52893);
double r52895 = r52877 / r52894;
double r52896 = r52877 + r52895;
double r52897 = r52879 * r52896;
double r52898 = sqrt(r52897);
return r52898;
}
double f(double l, double Om, double kx, double ky) {
double r52899 = 1.0;
double r52900 = 2.0;
double r52901 = r52899 / r52900;
double r52902 = kx;
double r52903 = sin(r52902);
double r52904 = pow(r52903, r52900);
double r52905 = ky;
double r52906 = sin(r52905);
double r52907 = pow(r52906, r52900);
double r52908 = r52904 + r52907;
double r52909 = l;
double r52910 = r52900 * r52909;
double r52911 = Om;
double r52912 = r52910 / r52911;
double r52913 = pow(r52912, r52900);
double r52914 = fma(r52908, r52913, r52899);
double r52915 = cbrt(r52914);
double r52916 = cbrt(r52915);
double r52917 = r52916 * r52916;
double r52918 = r52917 * r52916;
double r52919 = cbrt(r52918);
double r52920 = r52919 * r52916;
double r52921 = r52920 * r52916;
double r52922 = fabs(r52921);
double r52923 = r52899 / r52922;
double r52924 = r52913 * r52908;
double r52925 = r52899 + r52924;
double r52926 = cbrt(r52925);
double r52927 = sqrt(r52926);
double r52928 = r52923 / r52927;
double r52929 = r52899 + r52928;
double r52930 = r52901 * r52929;
double r52931 = sqrt(r52930);
return r52931;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.7
rmApplied add-cube-cbrt1.7
Applied sqrt-prod1.7
Applied associate-/r*1.7
Simplified1.7
rmApplied add-cube-cbrt1.7
rmApplied add-cube-cbrt1.7
Final simplification1.7
herbie shell --seed 2019350 +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))))))))))