\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{1 \cdot \frac{1}{2} + \left(\log \left(\sqrt{e^{\frac{1 \cdot \frac{1}{2}}{\sqrt{\mathsf{fma}\left({\left(\frac{2}{Om} \cdot \ell\right)}^{2}, {\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}, 1\right)}}}}\right) + \log \left(\sqrt{e^{\frac{1 \cdot \frac{1}{2}}{\sqrt{\mathsf{fma}\left({\left(\frac{2}{Om} \cdot \ell\right)}^{2}, {\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}, 1\right)}}}}\right)\right)}double f(double l, double Om, double kx, double ky) {
double r2628933 = 1.0;
double r2628934 = 2.0;
double r2628935 = r2628933 / r2628934;
double r2628936 = l;
double r2628937 = r2628934 * r2628936;
double r2628938 = Om;
double r2628939 = r2628937 / r2628938;
double r2628940 = pow(r2628939, r2628934);
double r2628941 = kx;
double r2628942 = sin(r2628941);
double r2628943 = pow(r2628942, r2628934);
double r2628944 = ky;
double r2628945 = sin(r2628944);
double r2628946 = pow(r2628945, r2628934);
double r2628947 = r2628943 + r2628946;
double r2628948 = r2628940 * r2628947;
double r2628949 = r2628933 + r2628948;
double r2628950 = sqrt(r2628949);
double r2628951 = r2628933 / r2628950;
double r2628952 = r2628933 + r2628951;
double r2628953 = r2628935 * r2628952;
double r2628954 = sqrt(r2628953);
return r2628954;
}
double f(double l, double Om, double kx, double ky) {
double r2628955 = 1.0;
double r2628956 = 2.0;
double r2628957 = r2628955 / r2628956;
double r2628958 = r2628955 * r2628957;
double r2628959 = Om;
double r2628960 = r2628956 / r2628959;
double r2628961 = l;
double r2628962 = r2628960 * r2628961;
double r2628963 = pow(r2628962, r2628956);
double r2628964 = ky;
double r2628965 = sin(r2628964);
double r2628966 = pow(r2628965, r2628956);
double r2628967 = kx;
double r2628968 = sin(r2628967);
double r2628969 = pow(r2628968, r2628956);
double r2628970 = r2628966 + r2628969;
double r2628971 = fma(r2628963, r2628970, r2628955);
double r2628972 = sqrt(r2628971);
double r2628973 = r2628958 / r2628972;
double r2628974 = exp(r2628973);
double r2628975 = sqrt(r2628974);
double r2628976 = log(r2628975);
double r2628977 = r2628976 + r2628976;
double r2628978 = r2628958 + r2628977;
double r2628979 = sqrt(r2628978);
return r2628979;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied add-log-exp1.6
rmApplied add-sqr-sqrt2.1
Applied log-prod2.1
Final simplification2.1
herbie shell --seed 2019171 +o rules:numerics
(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))))))))))