\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}{\sqrt[3]{{\left(\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}\right)}^{3}}}\right)}double f(double l, double Om, double kx, double ky) {
double r53819 = 1.0;
double r53820 = 2.0;
double r53821 = r53819 / r53820;
double r53822 = l;
double r53823 = r53820 * r53822;
double r53824 = Om;
double r53825 = r53823 / r53824;
double r53826 = pow(r53825, r53820);
double r53827 = kx;
double r53828 = sin(r53827);
double r53829 = pow(r53828, r53820);
double r53830 = ky;
double r53831 = sin(r53830);
double r53832 = pow(r53831, r53820);
double r53833 = r53829 + r53832;
double r53834 = r53826 * r53833;
double r53835 = r53819 + r53834;
double r53836 = sqrt(r53835);
double r53837 = r53819 / r53836;
double r53838 = r53819 + r53837;
double r53839 = r53821 * r53838;
double r53840 = sqrt(r53839);
return r53840;
}
double f(double l, double Om, double kx, double ky) {
double r53841 = 1.0;
double r53842 = 2.0;
double r53843 = r53841 / r53842;
double r53844 = l;
double r53845 = r53842 * r53844;
double r53846 = Om;
double r53847 = r53845 / r53846;
double r53848 = 2.0;
double r53849 = r53842 / r53848;
double r53850 = pow(r53847, r53849);
double r53851 = kx;
double r53852 = sin(r53851);
double r53853 = pow(r53852, r53842);
double r53854 = ky;
double r53855 = sin(r53854);
double r53856 = pow(r53855, r53842);
double r53857 = r53853 + r53856;
double r53858 = sqrt(r53857);
double r53859 = r53850 * r53858;
double r53860 = r53859 * r53859;
double r53861 = r53841 + r53860;
double r53862 = sqrt(r53861);
double r53863 = 3.0;
double r53864 = pow(r53862, r53863);
double r53865 = cbrt(r53864);
double r53866 = r53841 / r53865;
double r53867 = r53841 + r53866;
double r53868 = r53843 * r53867;
double r53869 = sqrt(r53868);
return r53869;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-sqr-sqrt1.8
Applied sqr-pow1.8
Applied unswap-sqr1.5
rmApplied add-cbrt-cube1.5
Simplified1.5
Final simplification1.5
herbie shell --seed 2020039
(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))))))))))