\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}}{\sqrt{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\sin kx \cdot \ell}{Om}, \frac{\sin kx \cdot \ell}{Om}, \left(\sin ky \cdot \frac{\ell}{Om}\right) \cdot \left(\sin ky \cdot \frac{\ell}{Om}\right)\right), 4, 1\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1415965 = 1.0;
double r1415966 = 2.0;
double r1415967 = r1415965 / r1415966;
double r1415968 = l;
double r1415969 = r1415966 * r1415968;
double r1415970 = Om;
double r1415971 = r1415969 / r1415970;
double r1415972 = pow(r1415971, r1415966);
double r1415973 = kx;
double r1415974 = sin(r1415973);
double r1415975 = pow(r1415974, r1415966);
double r1415976 = ky;
double r1415977 = sin(r1415976);
double r1415978 = pow(r1415977, r1415966);
double r1415979 = r1415975 + r1415978;
double r1415980 = r1415972 * r1415979;
double r1415981 = r1415965 + r1415980;
double r1415982 = sqrt(r1415981);
double r1415983 = r1415965 / r1415982;
double r1415984 = r1415965 + r1415983;
double r1415985 = r1415967 * r1415984;
double r1415986 = sqrt(r1415985);
return r1415986;
}
double f(double l, double Om, double kx, double ky) {
double r1415987 = 0.5;
double r1415988 = kx;
double r1415989 = sin(r1415988);
double r1415990 = l;
double r1415991 = r1415989 * r1415990;
double r1415992 = Om;
double r1415993 = r1415991 / r1415992;
double r1415994 = ky;
double r1415995 = sin(r1415994);
double r1415996 = r1415990 / r1415992;
double r1415997 = r1415995 * r1415996;
double r1415998 = r1415997 * r1415997;
double r1415999 = fma(r1415993, r1415993, r1415998);
double r1416000 = 4.0;
double r1416001 = 1.0;
double r1416002 = fma(r1415999, r1416000, r1416001);
double r1416003 = sqrt(r1416002);
double r1416004 = r1415987 / r1416003;
double r1416005 = r1416004 + r1415987;
double r1416006 = sqrt(r1416005);
return r1416006;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.5
Simplified1.5
rmApplied insert-posit165.1
Taylor expanded around inf 6.7
Simplified5.4
rmApplied remove-posit160.6
Final simplification0.6
herbie shell --seed 2019164 +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))))))))))