\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^{\left(\left(\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}\right)\right)}\right)} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r739928 = 1.0;
double r739929 = 2.0;
double r739930 = r739928 / r739929;
double r739931 = l;
double r739932 = r739929 * r739931;
double r739933 = Om;
double r739934 = r739932 / r739933;
double r739935 = pow(r739934, r739929);
double r739936 = kx;
double r739937 = sin(r739936);
double r739938 = pow(r739937, r739929);
double r739939 = ky;
double r739940 = sin(r739939);
double r739941 = pow(r739940, r739929);
double r739942 = r739938 + r739941;
double r739943 = r739935 * r739942;
double r739944 = r739928 + r739943;
double r739945 = sqrt(r739944);
double r739946 = r739928 / r739945;
double r739947 = r739928 + r739946;
double r739948 = r739930 * r739947;
double r739949 = sqrt(r739948);
return r739949;
}
double f(double l, double Om, double kx, double ky) {
double r739950 = 0.5;
double r739951 = 2.0;
double r739952 = l;
double r739953 = r739951 * r739952;
double r739954 = Om;
double r739955 = r739953 / r739954;
double r739956 = ky;
double r739957 = sin(r739956);
double r739958 = r739957 * r739957;
double r739959 = kx;
double r739960 = sin(r739959);
double r739961 = r739960 * r739960;
double r739962 = r739958 + r739961;
double r739963 = r739955 * r739962;
double r739964 = r739963 * r739955;
double r739965 = 1.0;
double r739966 = r739964 + r739965;
double r739967 = sqrt(r739966);
double r739968 = /* ERROR: no posit support in C */;
double r739969 = /* ERROR: no posit support in C */;
double r739970 = exp(r739969);
double r739971 = log(r739970);
double r739972 = r739950 / r739971;
double r739973 = r739972 + r739950;
double r739974 = sqrt(r739973);
return r739974;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.7
Simplified1.7
rmApplied associate-*r*1.4
rmApplied add-log-exp1.5
rmApplied insert-posit161.2
Final simplification1.2
herbie shell --seed 2019155
(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))))))))))