w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;M \cdot D \le 2.615310040678845 \cdot 10^{-68}:\\
\;\;\;\;\sqrt{1 - \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}} \cdot \left(\frac{\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}{\frac{d \cdot \frac{2}{M}}{D}} \cdot \frac{\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}{\frac{d \cdot \frac{2}{M}}{D}}\right)} \cdot w0\\
\mathbf{elif}\;M \cdot D \le 6.1133621054579885 \cdot 10^{+87}:\\
\;\;\;\;\sqrt{1 - \frac{\left(\frac{M \cdot D}{2 \cdot d} \cdot \left(M \cdot D\right)\right) \cdot h}{\ell \cdot \left(2 \cdot d\right)}} \cdot w0\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 - \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}} \cdot \left(\frac{\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}{\frac{d \cdot \frac{2}{M}}{D}} \cdot \frac{\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}{\frac{d \cdot \frac{2}{M}}{D}}\right)} \cdot w0\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r4584616 = w0;
double r4584617 = 1.0;
double r4584618 = M;
double r4584619 = D;
double r4584620 = r4584618 * r4584619;
double r4584621 = 2.0;
double r4584622 = d;
double r4584623 = r4584621 * r4584622;
double r4584624 = r4584620 / r4584623;
double r4584625 = pow(r4584624, r4584621);
double r4584626 = h;
double r4584627 = l;
double r4584628 = r4584626 / r4584627;
double r4584629 = r4584625 * r4584628;
double r4584630 = r4584617 - r4584629;
double r4584631 = sqrt(r4584630);
double r4584632 = r4584616 * r4584631;
return r4584632;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r4584633 = M;
double r4584634 = D;
double r4584635 = r4584633 * r4584634;
double r4584636 = 2.615310040678845e-68;
bool r4584637 = r4584635 <= r4584636;
double r4584638 = 1.0;
double r4584639 = h;
double r4584640 = cbrt(r4584639);
double r4584641 = l;
double r4584642 = cbrt(r4584641);
double r4584643 = r4584640 / r4584642;
double r4584644 = d;
double r4584645 = 2.0;
double r4584646 = r4584645 / r4584633;
double r4584647 = r4584644 * r4584646;
double r4584648 = r4584647 / r4584634;
double r4584649 = r4584643 / r4584648;
double r4584650 = r4584649 * r4584649;
double r4584651 = r4584643 * r4584650;
double r4584652 = r4584638 - r4584651;
double r4584653 = sqrt(r4584652);
double r4584654 = w0;
double r4584655 = r4584653 * r4584654;
double r4584656 = 6.1133621054579885e+87;
bool r4584657 = r4584635 <= r4584656;
double r4584658 = r4584645 * r4584644;
double r4584659 = r4584635 / r4584658;
double r4584660 = r4584659 * r4584635;
double r4584661 = r4584660 * r4584639;
double r4584662 = r4584641 * r4584658;
double r4584663 = r4584661 / r4584662;
double r4584664 = r4584638 - r4584663;
double r4584665 = sqrt(r4584664);
double r4584666 = r4584665 * r4584654;
double r4584667 = r4584657 ? r4584666 : r4584655;
double r4584668 = r4584637 ? r4584655 : r4584667;
return r4584668;
}



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 (* M D) < 2.615310040678845e-68 or 6.1133621054579885e+87 < (* M D) Initial program 14.0
Simplified14.0
rmApplied add-cube-cbrt14.0
Applied add-cube-cbrt14.0
Applied times-frac14.0
Applied associate-*r*10.8
Simplified8.4
rmApplied associate-/r*8.4
rmApplied *-un-lft-identity8.4
Applied associate-*r*8.4
Simplified8.1
if 2.615310040678845e-68 < (* M D) < 6.1133621054579885e+87Initial program 13.9
Simplified13.9
rmApplied associate-*r/13.9
Applied frac-times7.9
Final simplification8.0
herbie shell --seed 2019130
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))