\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]{\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]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}} \cdot \frac{1}{\sqrt[3]{\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 r43778 = 1.0;
double r43779 = 2.0;
double r43780 = r43778 / r43779;
double r43781 = l;
double r43782 = r43779 * r43781;
double r43783 = Om;
double r43784 = r43782 / r43783;
double r43785 = pow(r43784, r43779);
double r43786 = kx;
double r43787 = sin(r43786);
double r43788 = pow(r43787, r43779);
double r43789 = ky;
double r43790 = sin(r43789);
double r43791 = pow(r43790, r43779);
double r43792 = r43788 + r43791;
double r43793 = r43785 * r43792;
double r43794 = r43778 + r43793;
double r43795 = sqrt(r43794);
double r43796 = r43778 / r43795;
double r43797 = r43778 + r43796;
double r43798 = r43780 * r43797;
double r43799 = sqrt(r43798);
return r43799;
}
double f(double l, double Om, double kx, double ky) {
double r43800 = 1.0;
double r43801 = 2.0;
double r43802 = r43800 / r43801;
double r43803 = 1.0;
double r43804 = l;
double r43805 = r43801 * r43804;
double r43806 = Om;
double r43807 = r43805 / r43806;
double r43808 = pow(r43807, r43801);
double r43809 = kx;
double r43810 = sin(r43809);
double r43811 = pow(r43810, r43801);
double r43812 = ky;
double r43813 = sin(r43812);
double r43814 = pow(r43813, r43801);
double r43815 = r43811 + r43814;
double r43816 = r43808 * r43815;
double r43817 = r43800 + r43816;
double r43818 = sqrt(r43817);
double r43819 = cbrt(r43818);
double r43820 = r43819 * r43819;
double r43821 = r43803 / r43820;
double r43822 = r43800 / r43819;
double r43823 = r43821 * r43822;
double r43824 = r43800 + r43823;
double r43825 = r43802 * r43824;
double r43826 = sqrt(r43825);
return r43826;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-cube-cbrt1.7
Applied *-un-lft-identity1.7
Applied times-frac1.7
Final simplification1.7
herbie shell --seed 2020001
(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))))))))))