w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;\frac{h}{\ell} = -\infty:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)\right) \cdot \frac{1}{\ell}}\\
\mathbf{elif}\;\frac{h}{\ell} \le -6.33337441145867224 \cdot 10^{-109}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{2} \cdot \frac{h}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\left({\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right) \cdot \frac{1}{\ell}\right)}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r272934 = w0;
double r272935 = 1.0;
double r272936 = M;
double r272937 = D;
double r272938 = r272936 * r272937;
double r272939 = 2.0;
double r272940 = d;
double r272941 = r272939 * r272940;
double r272942 = r272938 / r272941;
double r272943 = pow(r272942, r272939);
double r272944 = h;
double r272945 = l;
double r272946 = r272944 / r272945;
double r272947 = r272943 * r272946;
double r272948 = r272935 - r272947;
double r272949 = sqrt(r272948);
double r272950 = r272934 * r272949;
return r272950;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r272951 = h;
double r272952 = l;
double r272953 = r272951 / r272952;
double r272954 = -inf.0;
bool r272955 = r272953 <= r272954;
double r272956 = w0;
double r272957 = 1.0;
double r272958 = M;
double r272959 = D;
double r272960 = r272958 * r272959;
double r272961 = 2.0;
double r272962 = d;
double r272963 = r272961 * r272962;
double r272964 = r272960 / r272963;
double r272965 = 2.0;
double r272966 = r272961 / r272965;
double r272967 = pow(r272964, r272966);
double r272968 = r272967 * r272951;
double r272969 = r272967 * r272968;
double r272970 = 1.0;
double r272971 = r272970 / r272952;
double r272972 = r272969 * r272971;
double r272973 = r272957 - r272972;
double r272974 = sqrt(r272973);
double r272975 = r272956 * r272974;
double r272976 = -6.333374411458672e-109;
bool r272977 = r272953 <= r272976;
double r272978 = r272958 / r272961;
double r272979 = r272959 / r272962;
double r272980 = r272978 * r272979;
double r272981 = pow(r272980, r272961);
double r272982 = r272981 * r272953;
double r272983 = r272957 - r272982;
double r272984 = sqrt(r272983);
double r272985 = r272956 * r272984;
double r272986 = pow(r272980, r272966);
double r272987 = r272986 * r272951;
double r272988 = r272987 * r272971;
double r272989 = r272986 * r272988;
double r272990 = r272957 - r272989;
double r272991 = sqrt(r272990);
double r272992 = r272956 * r272991;
double r272993 = r272977 ? r272985 : r272992;
double r272994 = r272955 ? r272975 : r272993;
return r272994;
}



Bits error versus w0



Bits error versus M



Bits error versus D



Bits error versus h



Bits error versus l



Bits error versus d
Results
if (/ h l) < -inf.0Initial program 64.0
rmApplied div-inv64.0
Applied associate-*r*25.2
rmApplied sqr-pow25.2
Applied associate-*l*21.0
if -inf.0 < (/ h l) < -6.333374411458672e-109Initial program 14.2
rmApplied times-frac14.1
if -6.333374411458672e-109 < (/ h l) Initial program 9.2
rmApplied div-inv9.2
Applied associate-*r*6.5
rmApplied times-frac6.4
rmApplied sqr-pow6.4
Applied associate-*l*4.4
rmApplied associate-*l*3.4
Final simplification7.8
herbie shell --seed 2020020
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
:precision binary64
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))