\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}{\log \left(e^{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\right)}double f(double l, double Om, double kx, double ky) {
double r53802 = 1.0;
double r53803 = 2.0;
double r53804 = r53802 / r53803;
double r53805 = l;
double r53806 = r53803 * r53805;
double r53807 = Om;
double r53808 = r53806 / r53807;
double r53809 = pow(r53808, r53803);
double r53810 = kx;
double r53811 = sin(r53810);
double r53812 = pow(r53811, r53803);
double r53813 = ky;
double r53814 = sin(r53813);
double r53815 = pow(r53814, r53803);
double r53816 = r53812 + r53815;
double r53817 = r53809 * r53816;
double r53818 = r53802 + r53817;
double r53819 = sqrt(r53818);
double r53820 = r53802 / r53819;
double r53821 = r53802 + r53820;
double r53822 = r53804 * r53821;
double r53823 = sqrt(r53822);
return r53823;
}
double f(double l, double Om, double kx, double ky) {
double r53824 = 1.0;
double r53825 = 2.0;
double r53826 = r53824 / r53825;
double r53827 = l;
double r53828 = r53825 * r53827;
double r53829 = Om;
double r53830 = r53828 / r53829;
double r53831 = pow(r53830, r53825);
double r53832 = kx;
double r53833 = sin(r53832);
double r53834 = pow(r53833, r53825);
double r53835 = ky;
double r53836 = sin(r53835);
double r53837 = pow(r53836, r53825);
double r53838 = r53834 + r53837;
double r53839 = r53831 * r53838;
double r53840 = r53824 + r53839;
double r53841 = sqrt(r53840);
double r53842 = exp(r53841);
double r53843 = log(r53842);
double r53844 = r53824 / r53843;
double r53845 = r53824 + r53844;
double r53846 = r53826 * r53845;
double r53847 = sqrt(r53846);
return r53847;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-log-exp1.9
Final simplification1.9
herbie shell --seed 2020081
(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))))))))))