\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 + \left(\sqrt[3]{\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)}}} \cdot \sqrt[3]{\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) \cdot \sqrt[3]{\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)}double f(double l, double Om, double kx, double ky) {
double r38767 = 1.0;
double r38768 = 2.0;
double r38769 = r38767 / r38768;
double r38770 = l;
double r38771 = r38768 * r38770;
double r38772 = Om;
double r38773 = r38771 / r38772;
double r38774 = pow(r38773, r38768);
double r38775 = kx;
double r38776 = sin(r38775);
double r38777 = pow(r38776, r38768);
double r38778 = ky;
double r38779 = sin(r38778);
double r38780 = pow(r38779, r38768);
double r38781 = r38777 + r38780;
double r38782 = r38774 * r38781;
double r38783 = r38767 + r38782;
double r38784 = sqrt(r38783);
double r38785 = r38767 / r38784;
double r38786 = r38767 + r38785;
double r38787 = r38769 * r38786;
double r38788 = sqrt(r38787);
return r38788;
}
double f(double l, double Om, double kx, double ky) {
double r38789 = 1.0;
double r38790 = 2.0;
double r38791 = r38789 / r38790;
double r38792 = l;
double r38793 = r38790 * r38792;
double r38794 = Om;
double r38795 = r38793 / r38794;
double r38796 = pow(r38795, r38790);
double r38797 = kx;
double r38798 = sin(r38797);
double r38799 = pow(r38798, r38790);
double r38800 = ky;
double r38801 = sin(r38800);
double r38802 = pow(r38801, r38790);
double r38803 = r38799 + r38802;
double r38804 = r38796 * r38803;
double r38805 = r38789 + r38804;
double r38806 = sqrt(r38805);
double r38807 = r38789 / r38806;
double r38808 = cbrt(r38807);
double r38809 = r38808 * r38808;
double r38810 = r38809 * r38808;
double r38811 = r38789 + r38810;
double r38812 = r38791 * r38811;
double r38813 = sqrt(r38812);
return r38813;
}



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
Final simplification1.8
herbie shell --seed 2019303
(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))))))))))