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 -5.16210328038061646251671964536746362143 \cdot 10^{209} \lor \frac{h}{\ell} \le -5.197981195083362506719957051474143391568 \cdot 10^{-284}:\\
\;\;\;\;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 - {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\frac{{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{2} \cdot h}{\ell} \cdot {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)}\right)}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r140457 = w0;
double r140458 = 1.0;
double r140459 = M;
double r140460 = D;
double r140461 = r140459 * r140460;
double r140462 = 2.0;
double r140463 = d;
double r140464 = r140462 * r140463;
double r140465 = r140461 / r140464;
double r140466 = pow(r140465, r140462);
double r140467 = h;
double r140468 = l;
double r140469 = r140467 / r140468;
double r140470 = r140466 * r140469;
double r140471 = r140458 - r140470;
double r140472 = sqrt(r140471);
double r140473 = r140457 * r140472;
return r140473;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r140474 = h;
double r140475 = l;
double r140476 = r140474 / r140475;
double r140477 = -5.1621032803806165e+209;
bool r140478 = r140476 <= r140477;
double r140479 = -5.1979811950833625e-284;
bool r140480 = r140476 <= r140479;
bool r140481 = r140478 || r140480;
double r140482 = w0;
double r140483 = 1.0;
double r140484 = M;
double r140485 = D;
double r140486 = r140484 * r140485;
double r140487 = 2.0;
double r140488 = d;
double r140489 = r140487 * r140488;
double r140490 = r140486 / r140489;
double r140491 = 2.0;
double r140492 = r140487 / r140491;
double r140493 = pow(r140490, r140492);
double r140494 = r140493 * r140476;
double r140495 = r140493 * r140494;
double r140496 = r140483 - r140495;
double r140497 = sqrt(r140496);
double r140498 = r140482 * r140497;
double r140499 = cbrt(r140490);
double r140500 = r140499 * r140499;
double r140501 = pow(r140500, r140492);
double r140502 = pow(r140499, r140487);
double r140503 = r140502 * r140474;
double r140504 = r140503 / r140475;
double r140505 = r140504 * r140501;
double r140506 = r140501 * r140505;
double r140507 = r140483 - r140506;
double r140508 = sqrt(r140507);
double r140509 = r140482 * r140508;
double r140510 = r140481 ? r140498 : r140509;
return r140510;
}



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) < -5.1621032803806165e+209Initial program 42.7
rmApplied div-inv42.7
Applied associate-*r*22.3
rmApplied add-cube-cbrt22.3
if -5.1621032803806165e+209 < (/ h l) < -5.1979811950833625e-284Initial program 14.3
rmApplied sqr-pow14.3
Applied associate-*l*12.2
if -5.1979811950833625e-284 < (/ h l) Initial program 8.3
rmApplied div-inv8.3
Applied associate-*r*4.6
rmApplied add-cube-cbrt4.6
Applied unpow-prod-down4.6
Applied associate-*l*3.0
rmApplied associate-*l*3.1
rmApplied sqr-pow3.1
Applied associate-*l*2.5
Simplified2.5
Final simplification10.8
herbie shell --seed 2019298
(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))))))