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{\sqrt[3]{\sqrt[3]{h}} \cdot \sqrt[3]{\sqrt[3]{h}}}{\sqrt[3]{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}} \cdot \left(\frac{\sqrt[3]{\sqrt[3]{h}}}{\sqrt[3]{\sqrt[3]{\ell}}} \cdot \frac{M \cdot D}{d \cdot 2}\right)\right) \cdot \left(\frac{M \cdot D}{d \cdot 2} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}\\
\mathbf{elif}\;\frac{h}{\ell} \le -3.1916640721345 \cdot 10^{-320}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left(\frac{M \cdot D}{d \cdot 2} \cdot \frac{h}{\ell}\right) \cdot \frac{M \cdot D}{d \cdot 2}}\\
\mathbf{else}:\\
\;\;\;\;w0\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r6417925 = w0;
double r6417926 = 1.0;
double r6417927 = M;
double r6417928 = D;
double r6417929 = r6417927 * r6417928;
double r6417930 = 2.0;
double r6417931 = d;
double r6417932 = r6417930 * r6417931;
double r6417933 = r6417929 / r6417932;
double r6417934 = pow(r6417933, r6417930);
double r6417935 = h;
double r6417936 = l;
double r6417937 = r6417935 / r6417936;
double r6417938 = r6417934 * r6417937;
double r6417939 = r6417926 - r6417938;
double r6417940 = sqrt(r6417939);
double r6417941 = r6417925 * r6417940;
return r6417941;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r6417942 = h;
double r6417943 = l;
double r6417944 = r6417942 / r6417943;
double r6417945 = -inf.0;
bool r6417946 = r6417944 <= r6417945;
double r6417947 = w0;
double r6417948 = 1.0;
double r6417949 = cbrt(r6417942);
double r6417950 = cbrt(r6417949);
double r6417951 = r6417950 * r6417950;
double r6417952 = cbrt(r6417943);
double r6417953 = r6417952 * r6417952;
double r6417954 = cbrt(r6417953);
double r6417955 = r6417951 / r6417954;
double r6417956 = cbrt(r6417952);
double r6417957 = r6417950 / r6417956;
double r6417958 = M;
double r6417959 = D;
double r6417960 = r6417958 * r6417959;
double r6417961 = d;
double r6417962 = 2.0;
double r6417963 = r6417961 * r6417962;
double r6417964 = r6417960 / r6417963;
double r6417965 = r6417957 * r6417964;
double r6417966 = r6417955 * r6417965;
double r6417967 = r6417949 / r6417952;
double r6417968 = r6417964 * r6417967;
double r6417969 = r6417966 * r6417968;
double r6417970 = r6417969 * r6417967;
double r6417971 = r6417948 - r6417970;
double r6417972 = sqrt(r6417971);
double r6417973 = r6417947 * r6417972;
double r6417974 = -3.1916640721345e-320;
bool r6417975 = r6417944 <= r6417974;
double r6417976 = r6417964 * r6417944;
double r6417977 = r6417976 * r6417964;
double r6417978 = r6417948 - r6417977;
double r6417979 = sqrt(r6417978);
double r6417980 = r6417947 * r6417979;
double r6417981 = r6417975 ? r6417980 : r6417947;
double r6417982 = r6417946 ? r6417973 : r6417981;
return r6417982;
}



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 61.7
Simplified61.7
rmApplied add-cube-cbrt61.7
Applied add-cube-cbrt61.7
Applied times-frac61.7
Applied associate-*r*30.9
Simplified20.9
rmApplied add-cube-cbrt20.9
Applied cbrt-prod20.9
Applied add-cube-cbrt20.9
Applied times-frac21.0
Applied associate-*l*20.9
if -inf.0 < (/ h l) < -3.1916640721345e-320Initial program 13.3
Simplified13.3
rmApplied associate-*l*11.5
if -3.1916640721345e-320 < (/ h l) Initial program 8.0
Simplified8.0
rmApplied add-cube-cbrt8.0
Applied add-cube-cbrt8.0
Applied times-frac8.0
Applied associate-*r*5.2
Simplified2.1
rmApplied add-cube-cbrt2.1
Applied cbrt-prod2.1
Applied add-cube-cbrt2.1
Applied times-frac2.1
Applied associate-*l*2.1
Taylor expanded around 0 2.5
Final simplification7.8
herbie shell --seed 2019144 +o rules:numerics
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))