\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{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \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 r45767 = 1.0;
double r45768 = 2.0;
double r45769 = r45767 / r45768;
double r45770 = l;
double r45771 = r45768 * r45770;
double r45772 = Om;
double r45773 = r45771 / r45772;
double r45774 = pow(r45773, r45768);
double r45775 = kx;
double r45776 = sin(r45775);
double r45777 = pow(r45776, r45768);
double r45778 = ky;
double r45779 = sin(r45778);
double r45780 = pow(r45779, r45768);
double r45781 = r45777 + r45780;
double r45782 = r45774 * r45781;
double r45783 = r45767 + r45782;
double r45784 = sqrt(r45783);
double r45785 = r45767 / r45784;
double r45786 = r45767 + r45785;
double r45787 = r45769 * r45786;
double r45788 = sqrt(r45787);
return r45788;
}
double f(double l, double Om, double kx, double ky) {
double r45789 = 1.0;
double r45790 = 2.0;
double r45791 = r45789 / r45790;
double r45792 = l;
double r45793 = r45790 * r45792;
double r45794 = Om;
double r45795 = r45793 / r45794;
double r45796 = 2.0;
double r45797 = r45790 / r45796;
double r45798 = pow(r45795, r45797);
double r45799 = kx;
double r45800 = sin(r45799);
double r45801 = pow(r45800, r45790);
double r45802 = ky;
double r45803 = sin(r45802);
double r45804 = pow(r45803, r45790);
double r45805 = r45801 + r45804;
double r45806 = r45798 * r45805;
double r45807 = r45798 * r45806;
double r45808 = r45789 + r45807;
double r45809 = sqrt(r45808);
double r45810 = r45789 / r45809;
double r45811 = r45789 + r45810;
double r45812 = r45791 * r45811;
double r45813 = sqrt(r45812);
return r45813;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.5
rmApplied sqr-pow1.5
Applied associate-*l*1.3
Final simplification1.3
herbie shell --seed 2019291
(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))))))))))