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 -4.434769257142831 \cdot 10^{294} \lor \neg \left(\frac{h}{\ell} \le -3.0353158251 \cdot 10^{-314}\right):\\
\;\;\;\;w0 \cdot \sqrt{1}\\
\mathbf{else}:\\
\;\;\;\;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)}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r215464 = w0;
double r215465 = 1.0;
double r215466 = M;
double r215467 = D;
double r215468 = r215466 * r215467;
double r215469 = 2.0;
double r215470 = d;
double r215471 = r215469 * r215470;
double r215472 = r215468 / r215471;
double r215473 = pow(r215472, r215469);
double r215474 = h;
double r215475 = l;
double r215476 = r215474 / r215475;
double r215477 = r215473 * r215476;
double r215478 = r215465 - r215477;
double r215479 = sqrt(r215478);
double r215480 = r215464 * r215479;
return r215480;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r215481 = h;
double r215482 = l;
double r215483 = r215481 / r215482;
double r215484 = -4.434769257142831e+294;
bool r215485 = r215483 <= r215484;
double r215486 = -3.0353158251021e-314;
bool r215487 = r215483 <= r215486;
double r215488 = !r215487;
bool r215489 = r215485 || r215488;
double r215490 = w0;
double r215491 = 1.0;
double r215492 = sqrt(r215491);
double r215493 = r215490 * r215492;
double r215494 = M;
double r215495 = D;
double r215496 = r215494 * r215495;
double r215497 = 2.0;
double r215498 = d;
double r215499 = r215497 * r215498;
double r215500 = r215496 / r215499;
double r215501 = 2.0;
double r215502 = r215497 / r215501;
double r215503 = pow(r215500, r215502);
double r215504 = r215503 * r215483;
double r215505 = r215503 * r215504;
double r215506 = r215491 - r215505;
double r215507 = sqrt(r215506);
double r215508 = r215490 * r215507;
double r215509 = r215489 ? r215493 : r215508;
return r215509;
}



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) < -4.434769257142831e+294 or -3.0353158251021e-314 < (/ h l) Initial program 14.5
Taylor expanded around 0 6.5
if -4.434769257142831e+294 < (/ h l) < -3.0353158251021e-314Initial program 14.6
rmApplied sqr-pow14.6
Applied associate-*l*12.6
Final simplification9.3
herbie shell --seed 2020047
(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))))))