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 -3.06029486315833535 \cdot 10^{139}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\
\mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\
\;\;\;\;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 - \frac{1}{\frac{\ell}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r271389 = w0;
double r271390 = 1.0;
double r271391 = M;
double r271392 = D;
double r271393 = r271391 * r271392;
double r271394 = 2.0;
double r271395 = d;
double r271396 = r271394 * r271395;
double r271397 = r271393 / r271396;
double r271398 = pow(r271397, r271394);
double r271399 = h;
double r271400 = l;
double r271401 = r271399 / r271400;
double r271402 = r271398 * r271401;
double r271403 = r271390 - r271402;
double r271404 = sqrt(r271403);
double r271405 = r271389 * r271404;
return r271405;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r271406 = h;
double r271407 = l;
double r271408 = r271406 / r271407;
double r271409 = -3.0602948631583354e+139;
bool r271410 = r271408 <= r271409;
double r271411 = w0;
double r271412 = 1.0;
double r271413 = 1.0;
double r271414 = M;
double r271415 = D;
double r271416 = r271414 * r271415;
double r271417 = 2.0;
double r271418 = d;
double r271419 = r271417 * r271418;
double r271420 = r271416 / r271419;
double r271421 = pow(r271420, r271417);
double r271422 = r271421 * r271406;
double r271423 = r271407 / r271422;
double r271424 = r271413 / r271423;
double r271425 = r271412 - r271424;
double r271426 = sqrt(r271425);
double r271427 = r271411 * r271426;
double r271428 = -4.417994843846055e-176;
bool r271429 = r271408 <= r271428;
double r271430 = 2.0;
double r271431 = r271417 / r271430;
double r271432 = pow(r271420, r271431);
double r271433 = r271432 * r271408;
double r271434 = r271432 * r271433;
double r271435 = r271412 - r271434;
double r271436 = sqrt(r271435);
double r271437 = r271411 * r271436;
double r271438 = r271419 / r271415;
double r271439 = r271414 / r271438;
double r271440 = pow(r271439, r271431);
double r271441 = r271440 * r271406;
double r271442 = r271440 * r271441;
double r271443 = r271407 / r271442;
double r271444 = r271413 / r271443;
double r271445 = r271412 - r271444;
double r271446 = sqrt(r271445);
double r271447 = r271411 * r271446;
double r271448 = r271429 ? r271437 : r271447;
double r271449 = r271410 ? r271427 : r271448;
return r271449;
}



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) < -3.0602948631583354e+139Initial program 34.4
rmApplied associate-*r/19.9
rmApplied clear-num19.9
if -3.0602948631583354e+139 < (/ h l) < -4.417994843846055e-176Initial program 14.2
rmApplied sqr-pow14.2
Applied associate-*l*12.7
if -4.417994843846055e-176 < (/ h l) Initial program 8.6
rmApplied associate-*r/5.8
rmApplied clear-num5.8
rmApplied associate-/l*5.7
rmApplied sqr-pow5.7
Applied associate-*l*3.9
Final simplification8.9
herbie shell --seed 2020056
(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))))))