\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]{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right|} \cdot \frac{1}{\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 r35892 = 1.0;
double r35893 = 2.0;
double r35894 = r35892 / r35893;
double r35895 = l;
double r35896 = r35893 * r35895;
double r35897 = Om;
double r35898 = r35896 / r35897;
double r35899 = pow(r35898, r35893);
double r35900 = kx;
double r35901 = sin(r35900);
double r35902 = pow(r35901, r35893);
double r35903 = ky;
double r35904 = sin(r35903);
double r35905 = pow(r35904, r35893);
double r35906 = r35902 + r35905;
double r35907 = r35899 * r35906;
double r35908 = r35892 + r35907;
double r35909 = sqrt(r35908);
double r35910 = r35892 / r35909;
double r35911 = r35892 + r35910;
double r35912 = r35894 * r35911;
double r35913 = sqrt(r35912);
return r35913;
}
double f(double l, double Om, double kx, double ky) {
double r35914 = 1.0;
double r35915 = 2.0;
double r35916 = r35914 / r35915;
double r35917 = 1.0;
double r35918 = l;
double r35919 = r35915 * r35918;
double r35920 = Om;
double r35921 = r35919 / r35920;
double r35922 = pow(r35921, r35915);
double r35923 = kx;
double r35924 = sin(r35923);
double r35925 = pow(r35924, r35915);
double r35926 = ky;
double r35927 = sin(r35926);
double r35928 = pow(r35927, r35915);
double r35929 = r35925 + r35928;
double r35930 = r35922 * r35929;
double r35931 = r35914 + r35930;
double r35932 = cbrt(r35931);
double r35933 = fabs(r35932);
double r35934 = r35917 / r35933;
double r35935 = sqrt(r35932);
double r35936 = r35914 / r35935;
double r35937 = r35934 * r35936;
double r35938 = r35914 + r35937;
double r35939 = r35916 * r35938;
double r35940 = sqrt(r35939);
return r35940;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 0.9
rmApplied add-cube-cbrt0.9
Applied sqrt-prod0.9
Applied *-un-lft-identity0.9
Applied times-frac0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2020064
(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))))))))))