\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 r55803 = 1.0;
double r55804 = 2.0;
double r55805 = r55803 / r55804;
double r55806 = l;
double r55807 = r55804 * r55806;
double r55808 = Om;
double r55809 = r55807 / r55808;
double r55810 = pow(r55809, r55804);
double r55811 = kx;
double r55812 = sin(r55811);
double r55813 = pow(r55812, r55804);
double r55814 = ky;
double r55815 = sin(r55814);
double r55816 = pow(r55815, r55804);
double r55817 = r55813 + r55816;
double r55818 = r55810 * r55817;
double r55819 = r55803 + r55818;
double r55820 = sqrt(r55819);
double r55821 = r55803 / r55820;
double r55822 = r55803 + r55821;
double r55823 = r55805 * r55822;
double r55824 = sqrt(r55823);
return r55824;
}
double f(double l, double Om, double kx, double ky) {
double r55825 = 1.0;
double r55826 = 2.0;
double r55827 = r55825 / r55826;
double r55828 = l;
double r55829 = r55826 * r55828;
double r55830 = Om;
double r55831 = r55829 / r55830;
double r55832 = pow(r55831, r55826);
double r55833 = kx;
double r55834 = sin(r55833);
double r55835 = pow(r55834, r55826);
double r55836 = ky;
double r55837 = sin(r55836);
double r55838 = pow(r55837, r55826);
double r55839 = r55835 + r55838;
double r55840 = r55832 * r55839;
double r55841 = r55825 + r55840;
double r55842 = sqrt(r55841);
double r55843 = r55825 / r55842;
double r55844 = cbrt(r55843);
double r55845 = r55844 * r55844;
double r55846 = r55845 * r55844;
double r55847 = r55825 + r55846;
double r55848 = r55827 * r55847;
double r55849 = sqrt(r55848);
return r55849;
}



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