\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 r38758 = 1.0;
double r38759 = 2.0;
double r38760 = r38758 / r38759;
double r38761 = l;
double r38762 = r38759 * r38761;
double r38763 = Om;
double r38764 = r38762 / r38763;
double r38765 = pow(r38764, r38759);
double r38766 = kx;
double r38767 = sin(r38766);
double r38768 = pow(r38767, r38759);
double r38769 = ky;
double r38770 = sin(r38769);
double r38771 = pow(r38770, r38759);
double r38772 = r38768 + r38771;
double r38773 = r38765 * r38772;
double r38774 = r38758 + r38773;
double r38775 = sqrt(r38774);
double r38776 = r38758 / r38775;
double r38777 = r38758 + r38776;
double r38778 = r38760 * r38777;
double r38779 = sqrt(r38778);
return r38779;
}
double f(double l, double Om, double kx, double ky) {
double r38780 = 1.0;
double r38781 = 2.0;
double r38782 = r38780 / r38781;
double r38783 = l;
double r38784 = r38781 * r38783;
double r38785 = Om;
double r38786 = r38784 / r38785;
double r38787 = pow(r38786, r38781);
double r38788 = kx;
double r38789 = sin(r38788);
double r38790 = pow(r38789, r38781);
double r38791 = ky;
double r38792 = sin(r38791);
double r38793 = pow(r38792, r38781);
double r38794 = r38790 + r38793;
double r38795 = r38787 * r38794;
double r38796 = r38780 + r38795;
double r38797 = sqrt(r38796);
double r38798 = r38780 / r38797;
double r38799 = cbrt(r38798);
double r38800 = r38799 * r38799;
double r38801 = r38800 * r38799;
double r38802 = r38780 + r38801;
double r38803 = r38782 * r38802;
double r38804 = sqrt(r38803);
return r38804;
}



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))))))))))