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} \le -1.772133656628061046787329400235105824789 \cdot 10^{308}:\\
\;\;\;\;\sqrt{1} \cdot w0\\
\mathbf{elif}\;\frac{h}{\ell} \le -2.034203706704132394404794445791386313725 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{1 - {\left(\frac{M \cdot D}{d \cdot 2}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\frac{h}{\ell} \cdot {\left(\frac{M \cdot D}{d \cdot 2}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot w0\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1} \cdot w0\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r5145972 = w0;
double r5145973 = 1.0;
double r5145974 = M;
double r5145975 = D;
double r5145976 = r5145974 * r5145975;
double r5145977 = 2.0;
double r5145978 = d;
double r5145979 = r5145977 * r5145978;
double r5145980 = r5145976 / r5145979;
double r5145981 = pow(r5145980, r5145977);
double r5145982 = h;
double r5145983 = l;
double r5145984 = r5145982 / r5145983;
double r5145985 = r5145981 * r5145984;
double r5145986 = r5145973 - r5145985;
double r5145987 = sqrt(r5145986);
double r5145988 = r5145972 * r5145987;
return r5145988;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r5145989 = h;
double r5145990 = l;
double r5145991 = r5145989 / r5145990;
double r5145992 = -1.772133656628061e+308;
bool r5145993 = r5145991 <= r5145992;
double r5145994 = 1.0;
double r5145995 = sqrt(r5145994);
double r5145996 = w0;
double r5145997 = r5145995 * r5145996;
double r5145998 = -2.0342037067041e-311;
bool r5145999 = r5145991 <= r5145998;
double r5146000 = M;
double r5146001 = D;
double r5146002 = r5146000 * r5146001;
double r5146003 = d;
double r5146004 = 2.0;
double r5146005 = r5146003 * r5146004;
double r5146006 = r5146002 / r5146005;
double r5146007 = 2.0;
double r5146008 = r5146004 / r5146007;
double r5146009 = pow(r5146006, r5146008);
double r5146010 = r5145991 * r5146009;
double r5146011 = r5146009 * r5146010;
double r5146012 = r5145994 - r5146011;
double r5146013 = sqrt(r5146012);
double r5146014 = r5146013 * r5145996;
double r5146015 = r5145999 ? r5146014 : r5145997;
double r5146016 = r5145993 ? r5145997 : r5146015;
return r5146016;
}



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) < -1.772133656628061e+308 or -2.0342037067041e-311 < (/ h l) Initial program 13.1
Taylor expanded around 0 5.9
if -1.772133656628061e+308 < (/ h l) < -2.0342037067041e-311Initial program 15.7
rmApplied sqr-pow15.7
Applied associate-*l*13.7
Final simplification9.5
herbie shell --seed 2019174
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))))))