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{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h\right) \cdot \frac{1}{\ell}}\\
\mathbf{elif}\;\frac{h}{\ell} \le -2.566959543532192688587992548008487318806 \cdot 10^{-296}:\\
\;\;\;\;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}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r254394 = w0;
double r254395 = 1.0;
double r254396 = M;
double r254397 = D;
double r254398 = r254396 * r254397;
double r254399 = 2.0;
double r254400 = d;
double r254401 = r254399 * r254400;
double r254402 = r254398 / r254401;
double r254403 = pow(r254402, r254399);
double r254404 = h;
double r254405 = l;
double r254406 = r254404 / r254405;
double r254407 = r254403 * r254406;
double r254408 = r254395 - r254407;
double r254409 = sqrt(r254408);
double r254410 = r254394 * r254409;
return r254410;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r254411 = h;
double r254412 = l;
double r254413 = r254411 / r254412;
double r254414 = -inf.0;
bool r254415 = r254413 <= r254414;
double r254416 = w0;
double r254417 = 1.0;
double r254418 = M;
double r254419 = D;
double r254420 = r254418 * r254419;
double r254421 = 2.0;
double r254422 = d;
double r254423 = r254421 * r254422;
double r254424 = r254420 / r254423;
double r254425 = pow(r254424, r254421);
double r254426 = r254425 * r254411;
double r254427 = 1.0;
double r254428 = r254427 / r254412;
double r254429 = r254426 * r254428;
double r254430 = r254417 - r254429;
double r254431 = sqrt(r254430);
double r254432 = r254416 * r254431;
double r254433 = -2.5669595435321927e-296;
bool r254434 = r254413 <= r254433;
double r254435 = 2.0;
double r254436 = r254421 / r254435;
double r254437 = pow(r254424, r254436);
double r254438 = r254437 * r254413;
double r254439 = r254437 * r254438;
double r254440 = r254417 - r254439;
double r254441 = sqrt(r254440);
double r254442 = r254416 * r254441;
double r254443 = sqrt(r254417);
double r254444 = r254416 * r254443;
double r254445 = r254434 ? r254442 : r254444;
double r254446 = r254415 ? r254432 : r254445;
return r254446;
}



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 64.0
rmApplied div-inv64.0
Applied associate-*r*26.9
if -inf.0 < (/ h l) < -2.5669595435321927e-296Initial program 14.5
rmApplied sqr-pow14.5
Applied associate-*l*12.5
if -2.5669595435321927e-296 < (/ h l) Initial program 8.3
Taylor expanded around 0 3.0
Final simplification8.8
herbie shell --seed 2019353
(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))))))