\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{\sqrt[3]{\left({\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}\right) \cdot {\left(\frac{\ell \cdot 2}{Om}\right)}^{2} + 1}} \cdot \left(\sqrt{\sqrt[3]{\left({\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}\right) \cdot {\left(\frac{\ell \cdot 2}{Om}\right)}^{2} + 1}} \cdot \sqrt{\sqrt[3]{\left({\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}\right) \cdot {\left(\frac{\ell \cdot 2}{Om}\right)}^{2} + 1}}\right)}\right)}double f(double l, double Om, double kx, double ky) {
double r1794775 = 1.0;
double r1794776 = 2.0;
double r1794777 = r1794775 / r1794776;
double r1794778 = l;
double r1794779 = r1794776 * r1794778;
double r1794780 = Om;
double r1794781 = r1794779 / r1794780;
double r1794782 = pow(r1794781, r1794776);
double r1794783 = kx;
double r1794784 = sin(r1794783);
double r1794785 = pow(r1794784, r1794776);
double r1794786 = ky;
double r1794787 = sin(r1794786);
double r1794788 = pow(r1794787, r1794776);
double r1794789 = r1794785 + r1794788;
double r1794790 = r1794782 * r1794789;
double r1794791 = r1794775 + r1794790;
double r1794792 = sqrt(r1794791);
double r1794793 = r1794775 / r1794792;
double r1794794 = r1794775 + r1794793;
double r1794795 = r1794777 * r1794794;
double r1794796 = sqrt(r1794795);
return r1794796;
}
double f(double l, double Om, double kx, double ky) {
double r1794797 = 1.0;
double r1794798 = 2.0;
double r1794799 = r1794797 / r1794798;
double r1794800 = ky;
double r1794801 = sin(r1794800);
double r1794802 = pow(r1794801, r1794798);
double r1794803 = kx;
double r1794804 = sin(r1794803);
double r1794805 = pow(r1794804, r1794798);
double r1794806 = r1794802 + r1794805;
double r1794807 = l;
double r1794808 = r1794807 * r1794798;
double r1794809 = Om;
double r1794810 = r1794808 / r1794809;
double r1794811 = pow(r1794810, r1794798);
double r1794812 = r1794806 * r1794811;
double r1794813 = r1794812 + r1794797;
double r1794814 = cbrt(r1794813);
double r1794815 = sqrt(r1794814);
double r1794816 = r1794815 * r1794815;
double r1794817 = r1794815 * r1794816;
double r1794818 = r1794797 / r1794817;
double r1794819 = r1794797 + r1794818;
double r1794820 = r1794799 * r1794819;
double r1794821 = sqrt(r1794820);
return r1794821;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
Applied sqrt-prod1.6
rmApplied sqrt-prod1.6
Final simplification1.6
herbie shell --seed 2019170
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))