w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;\ell \le -6.87360346340748126 \cdot 10^{-86}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\frac{\ell}{h}}}\\
\mathbf{elif}\;\ell \le 2.11094907956916753 \cdot 10^{-203}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot h}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right) \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r205845 = w0;
double r205846 = 1.0;
double r205847 = M;
double r205848 = D;
double r205849 = r205847 * r205848;
double r205850 = 2.0;
double r205851 = d;
double r205852 = r205850 * r205851;
double r205853 = r205849 / r205852;
double r205854 = pow(r205853, r205850);
double r205855 = h;
double r205856 = l;
double r205857 = r205855 / r205856;
double r205858 = r205854 * r205857;
double r205859 = r205846 - r205858;
double r205860 = sqrt(r205859);
double r205861 = r205845 * r205860;
return r205861;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r205862 = l;
double r205863 = -6.873603463407481e-86;
bool r205864 = r205862 <= r205863;
double r205865 = w0;
double r205866 = 1.0;
double r205867 = M;
double r205868 = D;
double r205869 = r205867 * r205868;
double r205870 = 2.0;
double r205871 = d;
double r205872 = r205870 * r205871;
double r205873 = r205869 / r205872;
double r205874 = 2.0;
double r205875 = r205870 / r205874;
double r205876 = pow(r205873, r205875);
double r205877 = h;
double r205878 = r205862 / r205877;
double r205879 = r205876 / r205878;
double r205880 = r205876 * r205879;
double r205881 = r205866 - r205880;
double r205882 = sqrt(r205881);
double r205883 = r205865 * r205882;
double r205884 = 2.1109490795691675e-203;
bool r205885 = r205862 <= r205884;
double r205886 = r205872 / r205868;
double r205887 = r205867 / r205886;
double r205888 = pow(r205887, r205870);
double r205889 = r205888 * r205877;
double r205890 = r205889 / r205862;
double r205891 = r205866 - r205890;
double r205892 = sqrt(r205891);
double r205893 = r205865 * r205892;
double r205894 = cbrt(r205873);
double r205895 = r205894 * r205894;
double r205896 = r205895 * r205894;
double r205897 = pow(r205896, r205875);
double r205898 = r205897 * r205877;
double r205899 = r205898 / r205862;
double r205900 = r205876 * r205899;
double r205901 = r205866 - r205900;
double r205902 = sqrt(r205901);
double r205903 = r205865 * r205902;
double r205904 = r205885 ? r205893 : r205903;
double r205905 = r205864 ? r205883 : r205904;
return r205905;
}



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 l < -6.873603463407481e-86Initial program 9.9
rmApplied associate-*r/9.9
rmApplied sqr-pow9.9
Applied associate-*l*8.2
rmApplied *-un-lft-identity8.2
Applied times-frac7.0
Simplified7.0
rmApplied associate-/l*7.8
if -6.873603463407481e-86 < l < 2.1109490795691675e-203Initial program 24.9
rmApplied associate-*r/12.2
rmApplied associate-/l*11.9
if 2.1109490795691675e-203 < l Initial program 12.4
rmApplied associate-*r/10.4
rmApplied sqr-pow10.4
Applied associate-*l*8.8
rmApplied *-un-lft-identity8.8
Applied times-frac8.0
Simplified8.0
rmApplied add-cube-cbrt8.1
Final simplification8.8
herbie shell --seed 2020089 +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))))))