\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[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)}}} \cdot \sqrt[3]{\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 r45860 = 1.0;
double r45861 = 2.0;
double r45862 = r45860 / r45861;
double r45863 = l;
double r45864 = r45861 * r45863;
double r45865 = Om;
double r45866 = r45864 / r45865;
double r45867 = pow(r45866, r45861);
double r45868 = kx;
double r45869 = sin(r45868);
double r45870 = pow(r45869, r45861);
double r45871 = ky;
double r45872 = sin(r45871);
double r45873 = pow(r45872, r45861);
double r45874 = r45870 + r45873;
double r45875 = r45867 * r45874;
double r45876 = r45860 + r45875;
double r45877 = sqrt(r45876);
double r45878 = r45860 / r45877;
double r45879 = r45860 + r45878;
double r45880 = r45862 * r45879;
double r45881 = sqrt(r45880);
return r45881;
}
double f(double l, double Om, double kx, double ky) {
double r45882 = 1.0;
double r45883 = 2.0;
double r45884 = r45882 / r45883;
double r45885 = l;
double r45886 = r45883 * r45885;
double r45887 = Om;
double r45888 = r45886 / r45887;
double r45889 = pow(r45888, r45883);
double r45890 = kx;
double r45891 = sin(r45890);
double r45892 = pow(r45891, r45883);
double r45893 = ky;
double r45894 = sin(r45893);
double r45895 = pow(r45894, r45883);
double r45896 = r45892 + r45895;
double r45897 = r45889 * r45896;
double r45898 = r45882 + r45897;
double r45899 = sqrt(r45898);
double r45900 = cbrt(r45899);
double r45901 = r45900 * r45900;
double r45902 = r45882 / r45901;
double r45903 = cbrt(r45901);
double r45904 = cbrt(r45900);
double r45905 = r45903 * r45904;
double r45906 = r45902 / r45905;
double r45907 = r45882 + r45906;
double r45908 = r45884 * r45907;
double r45909 = sqrt(r45908);
return r45909;
}



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 associate-/r*1.8
rmApplied add-cube-cbrt1.8
Applied cbrt-prod1.8
Final simplification1.8
herbie shell --seed 2019323
(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))))))))))