\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|\left(\sqrt[3]{\sqrt[3]{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}} \cdot \sqrt[3]{\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) \cdot \sqrt[3]{\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| \cdot \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 r44879 = 1.0;
double r44880 = 2.0;
double r44881 = r44879 / r44880;
double r44882 = l;
double r44883 = r44880 * r44882;
double r44884 = Om;
double r44885 = r44883 / r44884;
double r44886 = pow(r44885, r44880);
double r44887 = kx;
double r44888 = sin(r44887);
double r44889 = pow(r44888, r44880);
double r44890 = ky;
double r44891 = sin(r44890);
double r44892 = pow(r44891, r44880);
double r44893 = r44889 + r44892;
double r44894 = r44886 * r44893;
double r44895 = r44879 + r44894;
double r44896 = sqrt(r44895);
double r44897 = r44879 / r44896;
double r44898 = r44879 + r44897;
double r44899 = r44881 * r44898;
double r44900 = sqrt(r44899);
return r44900;
}
double f(double l, double Om, double kx, double ky) {
double r44901 = 1.0;
double r44902 = 2.0;
double r44903 = r44901 / r44902;
double r44904 = l;
double r44905 = r44902 * r44904;
double r44906 = Om;
double r44907 = r44905 / r44906;
double r44908 = pow(r44907, r44902);
double r44909 = kx;
double r44910 = sin(r44909);
double r44911 = pow(r44910, r44902);
double r44912 = ky;
double r44913 = sin(r44912);
double r44914 = pow(r44913, r44902);
double r44915 = r44911 + r44914;
double r44916 = r44908 * r44915;
double r44917 = r44901 + r44916;
double r44918 = cbrt(r44917);
double r44919 = cbrt(r44918);
double r44920 = r44919 * r44919;
double r44921 = r44920 * r44919;
double r44922 = fabs(r44921);
double r44923 = sqrt(r44918);
double r44924 = r44922 * r44923;
double r44925 = r44901 / r44924;
double r44926 = r44901 + r44925;
double r44927 = r44903 * r44926;
double r44928 = sqrt(r44927);
return r44928;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-cube-cbrt1.8
Applied sqrt-prod1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Final simplification1.8
herbie shell --seed 2019326
(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))))))))))