\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}{\sqrt[3]{\sqrt{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{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}}{\sqrt[3]{\sqrt{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 r49948 = 1.0;
double r49949 = 2.0;
double r49950 = r49948 / r49949;
double r49951 = l;
double r49952 = r49949 * r49951;
double r49953 = Om;
double r49954 = r49952 / r49953;
double r49955 = pow(r49954, r49949);
double r49956 = kx;
double r49957 = sin(r49956);
double r49958 = pow(r49957, r49949);
double r49959 = ky;
double r49960 = sin(r49959);
double r49961 = pow(r49960, r49949);
double r49962 = r49958 + r49961;
double r49963 = r49955 * r49962;
double r49964 = r49948 + r49963;
double r49965 = sqrt(r49964);
double r49966 = r49948 / r49965;
double r49967 = r49948 + r49966;
double r49968 = r49950 * r49967;
double r49969 = sqrt(r49968);
return r49969;
}
double f(double l, double Om, double kx, double ky) {
double r49970 = 1.0;
double r49971 = 2.0;
double r49972 = r49970 / r49971;
double r49973 = l;
double r49974 = r49971 * r49973;
double r49975 = Om;
double r49976 = r49974 / r49975;
double r49977 = pow(r49976, r49971);
double r49978 = kx;
double r49979 = sin(r49978);
double r49980 = pow(r49979, r49971);
double r49981 = ky;
double r49982 = sin(r49981);
double r49983 = pow(r49982, r49971);
double r49984 = r49980 + r49983;
double r49985 = r49977 * r49984;
double r49986 = r49970 + r49985;
double r49987 = sqrt(r49986);
double r49988 = cbrt(r49987);
double r49989 = r49988 * r49988;
double r49990 = r49970 / r49989;
double r49991 = r49990 / r49988;
double r49992 = r49970 + r49991;
double r49993 = r49972 * r49992;
double r49994 = sqrt(r49993);
return r49994;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



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