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:\\
\;\;\;\;\sqrt{1 - \left(\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}} \cdot \left({\left(\frac{M}{d}\right)}^{2} \cdot \left({\left(\frac{D}{2}\right)}^{2} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)\right)\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}} \cdot w0\\
\mathbf{elif}\;\frac{h}{\ell} \le -2.865580745879229956224098998635683959717 \cdot 10^{-321}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left({\left(\sqrt[3]{\frac{D \cdot M}{d \cdot 2}}\right)}^{2} \cdot \frac{h}{\ell}\right) \cdot {\left(\sqrt[3]{\frac{D \cdot M}{d \cdot 2}} \cdot \sqrt[3]{\frac{D \cdot M}{d \cdot 2}}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r4863481 = w0;
double r4863482 = 1.0;
double r4863483 = M;
double r4863484 = D;
double r4863485 = r4863483 * r4863484;
double r4863486 = 2.0;
double r4863487 = d;
double r4863488 = r4863486 * r4863487;
double r4863489 = r4863485 / r4863488;
double r4863490 = pow(r4863489, r4863486);
double r4863491 = h;
double r4863492 = l;
double r4863493 = r4863491 / r4863492;
double r4863494 = r4863490 * r4863493;
double r4863495 = r4863482 - r4863494;
double r4863496 = sqrt(r4863495);
double r4863497 = r4863481 * r4863496;
return r4863497;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r4863498 = h;
double r4863499 = l;
double r4863500 = r4863498 / r4863499;
double r4863501 = -inf.0;
bool r4863502 = r4863500 <= r4863501;
double r4863503 = 1.0;
double r4863504 = cbrt(r4863498);
double r4863505 = cbrt(r4863499);
double r4863506 = r4863504 / r4863505;
double r4863507 = M;
double r4863508 = d;
double r4863509 = r4863507 / r4863508;
double r4863510 = 2.0;
double r4863511 = pow(r4863509, r4863510);
double r4863512 = D;
double r4863513 = r4863512 / r4863510;
double r4863514 = pow(r4863513, r4863510);
double r4863515 = r4863514 * r4863506;
double r4863516 = r4863511 * r4863515;
double r4863517 = r4863506 * r4863516;
double r4863518 = r4863517 * r4863506;
double r4863519 = r4863503 - r4863518;
double r4863520 = sqrt(r4863519);
double r4863521 = w0;
double r4863522 = r4863520 * r4863521;
double r4863523 = -2.8655807458792e-321;
bool r4863524 = r4863500 <= r4863523;
double r4863525 = r4863512 * r4863507;
double r4863526 = r4863508 * r4863510;
double r4863527 = r4863525 / r4863526;
double r4863528 = cbrt(r4863527);
double r4863529 = pow(r4863528, r4863510);
double r4863530 = r4863529 * r4863500;
double r4863531 = r4863528 * r4863528;
double r4863532 = pow(r4863531, r4863510);
double r4863533 = r4863530 * r4863532;
double r4863534 = r4863503 - r4863533;
double r4863535 = sqrt(r4863534);
double r4863536 = r4863521 * r4863535;
double r4863537 = sqrt(r4863503);
double r4863538 = r4863521 * r4863537;
double r4863539 = r4863524 ? r4863536 : r4863538;
double r4863540 = r4863502 ? r4863522 : r4863539;
return r4863540;
}



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 add-cube-cbrt64.0
Applied add-cube-cbrt64.0
Applied times-frac64.0
Applied associate-*r*30.7
Simplified24.1
rmApplied times-frac24.7
Applied unpow-prod-down29.2
Applied associate-*l*29.1
if -inf.0 < (/ h l) < -2.8655807458792e-321Initial program 14.6
rmApplied add-cube-cbrt14.7
Applied unpow-prod-down14.7
Applied associate-*l*13.2
if -2.8655807458792e-321 < (/ h l) Initial program 7.4
rmApplied add-cube-cbrt7.4
Applied add-cube-cbrt7.4
Applied times-frac7.4
Applied associate-*r*4.5
Simplified3.8
Taylor expanded around 0 2.2
Final simplification8.9
herbie shell --seed 2019169
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))))))