\sqrt{\frac{1.0}{2.0} \cdot \left(1.0 + \frac{1.0}{\sqrt{1.0 + {\left(\frac{2.0 \cdot \ell}{Om}\right)}^{2.0} \cdot \left({\left(\sin kx\right)}^{2.0} + {\left(\sin ky\right)}^{2.0}\right)}}\right)}\sqrt{\frac{1.0}{2.0} \cdot \left(\frac{\frac{1.0}{\sqrt[3]{\sqrt{\sqrt{\left({\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}\right) \cdot {\left(\frac{\ell \cdot 2.0}{Om}\right)}^{2.0} + 1.0}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\left({\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}\right) \cdot {\left(\frac{\ell \cdot 2.0}{Om}\right)}^{2.0} + 1.0}}} \cdot \sqrt[3]{\sqrt{\sqrt{\left({\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}\right) \cdot {\left(\frac{\ell \cdot 2.0}{Om}\right)}^{2.0} + 1.0}}}\right)}}{\sqrt[3]{\sqrt{\sqrt{\left({\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}\right) \cdot {\left(\frac{\ell \cdot 2.0}{Om}\right)}^{2.0} + 1.0}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\left({\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}\right) \cdot {\left(\frac{\ell \cdot 2.0}{Om}\right)}^{2.0} + 1.0}}} \cdot \sqrt[3]{\sqrt{\sqrt{\left({\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}\right) \cdot {\left(\frac{\ell \cdot 2.0}{Om}\right)}^{2.0} + 1.0}}}\right)} + 1.0\right)}double f(double l, double Om, double kx, double ky) {
double r2109833 = 1.0;
double r2109834 = 2.0;
double r2109835 = r2109833 / r2109834;
double r2109836 = l;
double r2109837 = r2109834 * r2109836;
double r2109838 = Om;
double r2109839 = r2109837 / r2109838;
double r2109840 = pow(r2109839, r2109834);
double r2109841 = kx;
double r2109842 = sin(r2109841);
double r2109843 = pow(r2109842, r2109834);
double r2109844 = ky;
double r2109845 = sin(r2109844);
double r2109846 = pow(r2109845, r2109834);
double r2109847 = r2109843 + r2109846;
double r2109848 = r2109840 * r2109847;
double r2109849 = r2109833 + r2109848;
double r2109850 = sqrt(r2109849);
double r2109851 = r2109833 / r2109850;
double r2109852 = r2109833 + r2109851;
double r2109853 = r2109835 * r2109852;
double r2109854 = sqrt(r2109853);
return r2109854;
}
double f(double l, double Om, double kx, double ky) {
double r2109855 = 1.0;
double r2109856 = 2.0;
double r2109857 = r2109855 / r2109856;
double r2109858 = ky;
double r2109859 = sin(r2109858);
double r2109860 = pow(r2109859, r2109856);
double r2109861 = kx;
double r2109862 = sin(r2109861);
double r2109863 = pow(r2109862, r2109856);
double r2109864 = r2109860 + r2109863;
double r2109865 = l;
double r2109866 = r2109865 * r2109856;
double r2109867 = Om;
double r2109868 = r2109866 / r2109867;
double r2109869 = pow(r2109868, r2109856);
double r2109870 = r2109864 * r2109869;
double r2109871 = r2109870 + r2109855;
double r2109872 = sqrt(r2109871);
double r2109873 = sqrt(r2109872);
double r2109874 = cbrt(r2109873);
double r2109875 = r2109874 * r2109874;
double r2109876 = r2109874 * r2109875;
double r2109877 = r2109855 / r2109876;
double r2109878 = r2109877 / r2109876;
double r2109879 = r2109878 + r2109855;
double r2109880 = r2109857 * r2109879;
double r2109881 = sqrt(r2109880);
return r2109881;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-sqr-sqrt1.6
Applied sqrt-prod1.6
Applied associate-/r*1.6
rmApplied add-cube-cbrt1.6
rmApplied add-cube-cbrt1.6
Final simplification1.6
herbie shell --seed 2019165
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))