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 r268723 = w0;
double r268724 = 1.0;
double r268725 = M;
double r268726 = D;
double r268727 = r268725 * r268726;
double r268728 = 2.0;
double r268729 = d;
double r268730 = r268728 * r268729;
double r268731 = r268727 / r268730;
double r268732 = pow(r268731, r268728);
double r268733 = h;
double r268734 = l;
double r268735 = r268733 / r268734;
double r268736 = r268732 * r268735;
double r268737 = r268724 - r268736;
double r268738 = sqrt(r268737);
double r268739 = r268723 * r268738;
return r268739;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r268740 = h;
double r268741 = l;
double r268742 = r268740 / r268741;
double r268743 = -3.0602948631583354e+139;
bool r268744 = r268742 <= r268743;
double r268745 = w0;
double r268746 = 1.0;
double r268747 = 1.0;
double r268748 = M;
double r268749 = D;
double r268750 = r268748 * r268749;
double r268751 = 2.0;
double r268752 = d;
double r268753 = r268751 * r268752;
double r268754 = r268750 / r268753;
double r268755 = pow(r268754, r268751);
double r268756 = r268755 * r268740;
double r268757 = r268741 / r268756;
double r268758 = r268747 / r268757;
double r268759 = r268746 - r268758;
double r268760 = sqrt(r268759);
double r268761 = r268745 * r268760;
double r268762 = -4.417994843846055e-176;
bool r268763 = r268742 <= r268762;
double r268764 = 2.0;
double r268765 = r268751 / r268764;
double r268766 = pow(r268754, r268765);
double r268767 = r268766 * r268742;
double r268768 = r268766 * r268767;
double r268769 = r268746 - r268768;
double r268770 = sqrt(r268769);
double r268771 = r268745 * r268770;
double r268772 = r268753 / r268749;
double r268773 = r268748 / r268772;
double r268774 = pow(r268773, r268765);
double r268775 = r268774 * r268740;
double r268776 = r268774 * r268775;
double r268777 = r268741 / r268776;
double r268778 = r268747 / r268777;
double r268779 = r268746 - r268778;
double r268780 = sqrt(r268779);
double r268781 = r268745 * r268780;
double r268782 = r268763 ? r268771 : r268781;
double r268783 = r268744 ? r268761 : r268782;
return r268783;
}



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 +o rules:numerics
(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))))))