w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \le 1.855277338734028038380413031509408290214 \cdot 10^{-289} \lor \neg \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \le 1.933159505335491079472504373058255984824 \cdot 10^{291}\right):\\
\;\;\;\;\sqrt{1} \cdot w0\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \left(\sqrt[3]{\frac{h}{\ell}} \cdot \sqrt[3]{\frac{h}{\ell}}\right)\right) \cdot \sqrt[3]{\frac{h}{\ell}}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r211359 = w0;
double r211360 = 1.0;
double r211361 = M;
double r211362 = D;
double r211363 = r211361 * r211362;
double r211364 = 2.0;
double r211365 = d;
double r211366 = r211364 * r211365;
double r211367 = r211363 / r211366;
double r211368 = pow(r211367, r211364);
double r211369 = h;
double r211370 = l;
double r211371 = r211369 / r211370;
double r211372 = r211368 * r211371;
double r211373 = r211360 - r211372;
double r211374 = sqrt(r211373);
double r211375 = r211359 * r211374;
return r211375;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r211376 = M;
double r211377 = D;
double r211378 = r211376 * r211377;
double r211379 = 2.0;
double r211380 = d;
double r211381 = r211379 * r211380;
double r211382 = r211378 / r211381;
double r211383 = pow(r211382, r211379);
double r211384 = 1.855277338734028e-289;
bool r211385 = r211383 <= r211384;
double r211386 = 1.933159505335491e+291;
bool r211387 = r211383 <= r211386;
double r211388 = !r211387;
bool r211389 = r211385 || r211388;
double r211390 = 1.0;
double r211391 = sqrt(r211390);
double r211392 = w0;
double r211393 = r211391 * r211392;
double r211394 = h;
double r211395 = l;
double r211396 = r211394 / r211395;
double r211397 = cbrt(r211396);
double r211398 = r211397 * r211397;
double r211399 = r211383 * r211398;
double r211400 = r211399 * r211397;
double r211401 = r211390 - r211400;
double r211402 = sqrt(r211401);
double r211403 = r211392 * r211402;
double r211404 = r211389 ? r211393 : r211403;
return r211404;
}



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 (pow (/ (* M D) (* 2.0 d)) 2.0) < 1.855277338734028e-289 or 1.933159505335491e+291 < (pow (/ (* M D) (* 2.0 d)) 2.0) Initial program 18.2
Taylor expanded around 0 11.2
if 1.855277338734028e-289 < (pow (/ (* M D) (* 2.0 d)) 2.0) < 1.933159505335491e+291Initial program 6.0
rmApplied add-cube-cbrt6.1
Applied associate-*r*6.1
Final simplification9.4
herbie shell --seed 2020001 +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))))))