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 -3.06029486315833535 \cdot 10^{139}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\
\mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\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 \frac{h}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r272084 = w0;
double r272085 = 1.0;
double r272086 = M;
double r272087 = D;
double r272088 = r272086 * r272087;
double r272089 = 2.0;
double r272090 = d;
double r272091 = r272089 * r272090;
double r272092 = r272088 / r272091;
double r272093 = pow(r272092, r272089);
double r272094 = h;
double r272095 = l;
double r272096 = r272094 / r272095;
double r272097 = r272093 * r272096;
double r272098 = r272085 - r272097;
double r272099 = sqrt(r272098);
double r272100 = r272084 * r272099;
return r272100;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r272101 = h;
double r272102 = l;
double r272103 = r272101 / r272102;
double r272104 = -3.0602948631583354e+139;
bool r272105 = r272103 <= r272104;
double r272106 = w0;
double r272107 = 1.0;
double r272108 = 1.0;
double r272109 = M;
double r272110 = D;
double r272111 = r272109 * r272110;
double r272112 = 2.0;
double r272113 = d;
double r272114 = r272112 * r272113;
double r272115 = r272111 / r272114;
double r272116 = pow(r272115, r272112);
double r272117 = r272116 * r272101;
double r272118 = r272102 / r272117;
double r272119 = r272108 / r272118;
double r272120 = r272107 - r272119;
double r272121 = sqrt(r272120);
double r272122 = r272106 * r272121;
double r272123 = -4.417994843846055e-176;
bool r272124 = r272103 <= r272123;
double r272125 = 2.0;
double r272126 = r272112 / r272125;
double r272127 = pow(r272115, r272126);
double r272128 = r272127 * r272103;
double r272129 = r272127 * r272128;
double r272130 = r272107 - r272129;
double r272131 = sqrt(r272130);
double r272132 = r272106 * r272131;
double r272133 = r272114 / r272110;
double r272134 = r272109 / r272133;
double r272135 = pow(r272134, r272126);
double r272136 = r272135 * r272101;
double r272137 = r272135 * r272136;
double r272138 = r272102 / r272137;
double r272139 = r272108 / r272138;
double r272140 = r272107 - r272139;
double r272141 = sqrt(r272140);
double r272142 = r272106 * r272141;
double r272143 = r272124 ? r272132 : r272142;
double r272144 = r272105 ? r272122 : r272143;
return r272144;
}



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) < -3.0602948631583354e+139Initial program 34.4
rmApplied associate-*r/19.9
rmApplied clear-num19.9
if -3.0602948631583354e+139 < (/ h l) < -4.417994843846055e-176Initial program 14.2
rmApplied sqr-pow14.2
Applied associate-*l*12.7
if -4.417994843846055e-176 < (/ h l) Initial program 8.6
rmApplied associate-*r/5.8
rmApplied clear-num5.8
rmApplied associate-/l*5.7
rmApplied sqr-pow5.7
Applied associate-*l*3.9
Final simplification8.9
herbie shell --seed 2020056
(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))))))