\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{\frac{1}{2}}{\log \left(e^{\sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\sin ky}{\frac{Om}{\ell}} \cdot \frac{\sin ky}{\frac{Om}{\ell}}, 1\right)}}}\right) \cdot \left(\sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\sin ky}{\frac{Om}{\ell}} \cdot \frac{\sin ky}{\frac{Om}{\ell}}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\sin ky}{\frac{Om}{\ell}} \cdot \frac{\sin ky}{\frac{Om}{\ell}}, 1\right)}}\right)} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r898785 = 1.0;
double r898786 = 2.0;
double r898787 = r898785 / r898786;
double r898788 = l;
double r898789 = r898786 * r898788;
double r898790 = Om;
double r898791 = r898789 / r898790;
double r898792 = pow(r898791, r898786);
double r898793 = kx;
double r898794 = sin(r898793);
double r898795 = pow(r898794, r898786);
double r898796 = ky;
double r898797 = sin(r898796);
double r898798 = pow(r898797, r898786);
double r898799 = r898795 + r898798;
double r898800 = r898792 * r898799;
double r898801 = r898785 + r898800;
double r898802 = sqrt(r898801);
double r898803 = r898785 / r898802;
double r898804 = r898785 + r898803;
double r898805 = r898787 * r898804;
double r898806 = sqrt(r898805);
return r898806;
}
double f(double l, double Om, double kx, double ky) {
double r898807 = 0.5;
double r898808 = 4.0;
double r898809 = kx;
double r898810 = sin(r898809);
double r898811 = Om;
double r898812 = l;
double r898813 = r898811 / r898812;
double r898814 = r898810 / r898813;
double r898815 = r898814 * r898814;
double r898816 = ky;
double r898817 = sin(r898816);
double r898818 = r898817 / r898813;
double r898819 = r898818 * r898818;
double r898820 = r898815 + r898819;
double r898821 = 1.0;
double r898822 = fma(r898808, r898820, r898821);
double r898823 = sqrt(r898822);
double r898824 = cbrt(r898823);
double r898825 = exp(r898824);
double r898826 = log(r898825);
double r898827 = r898824 * r898824;
double r898828 = r898826 * r898827;
double r898829 = r898807 / r898828;
double r898830 = r898829 + r898807;
double r898831 = sqrt(r898830);
return r898831;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.5
Simplified1.5
Taylor expanded around inf 16.2
Simplified0.6
rmApplied add-cube-cbrt0.6
rmApplied add-log-exp0.6
Final simplification0.6
herbie shell --seed 2019135 +o rules:numerics
(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))))))))))