\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} + \sqrt[3]{\frac{\frac{\frac{1}{8}}{\left(\left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) + \left(\sin kx \cdot \frac{\ell + \ell}{Om}\right) \cdot \left(\sin kx \cdot \frac{\ell + \ell}{Om}\right)\right) + 1}}{\sqrt{\left(\left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) + \left(\sin kx \cdot \frac{\ell + \ell}{Om}\right) \cdot \left(\sin kx \cdot \frac{\ell + \ell}{Om}\right)\right) + 1}}}}double f(double l, double Om, double kx, double ky) {
double r1801845 = 1.0;
double r1801846 = 2.0;
double r1801847 = r1801845 / r1801846;
double r1801848 = l;
double r1801849 = r1801846 * r1801848;
double r1801850 = Om;
double r1801851 = r1801849 / r1801850;
double r1801852 = pow(r1801851, r1801846);
double r1801853 = kx;
double r1801854 = sin(r1801853);
double r1801855 = pow(r1801854, r1801846);
double r1801856 = ky;
double r1801857 = sin(r1801856);
double r1801858 = pow(r1801857, r1801846);
double r1801859 = r1801855 + r1801858;
double r1801860 = r1801852 * r1801859;
double r1801861 = r1801845 + r1801860;
double r1801862 = sqrt(r1801861);
double r1801863 = r1801845 / r1801862;
double r1801864 = r1801845 + r1801863;
double r1801865 = r1801847 * r1801864;
double r1801866 = sqrt(r1801865);
return r1801866;
}
double f(double l, double Om, double kx, double ky) {
double r1801867 = 0.5;
double r1801868 = 0.125;
double r1801869 = l;
double r1801870 = r1801869 + r1801869;
double r1801871 = Om;
double r1801872 = r1801870 / r1801871;
double r1801873 = ky;
double r1801874 = sin(r1801873);
double r1801875 = r1801872 * r1801874;
double r1801876 = r1801875 * r1801875;
double r1801877 = kx;
double r1801878 = sin(r1801877);
double r1801879 = r1801878 * r1801872;
double r1801880 = r1801879 * r1801879;
double r1801881 = r1801876 + r1801880;
double r1801882 = 1.0;
double r1801883 = r1801881 + r1801882;
double r1801884 = r1801868 / r1801883;
double r1801885 = sqrt(r1801883);
double r1801886 = r1801884 / r1801885;
double r1801887 = cbrt(r1801886);
double r1801888 = r1801867 + r1801887;
double r1801889 = sqrt(r1801888);
return r1801889;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
Simplified1.7
rmApplied insert-posit165.9
rmApplied add-cbrt-cube5.9
Simplified0.6
Final simplification0.6
herbie shell --seed 2019163
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))