w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;\ell \le 3.582257138037586599318904097312066593376 \cdot 10^{122}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left(\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}} \cdot \left({\left(\frac{1}{\frac{\frac{2 \cdot d}{D}}{M}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\sqrt[3]{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}} \cdot \left(\sqrt[3]{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}} \cdot \sqrt[3]{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}\right)\right)\right)\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}\\
\mathbf{elif}\;\ell \le 6.489671467557263418113195619699661828203 \cdot 10^{210}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\frac{h}{\ell} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right)}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left(\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}} \cdot \left({\left(\frac{1}{\frac{\frac{2 \cdot d}{D}}{M}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\sqrt[3]{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}} \cdot \left(\sqrt[3]{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}} \cdot \sqrt[3]{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}\right)\right)\right)\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r6057480 = w0;
double r6057481 = 1.0;
double r6057482 = M;
double r6057483 = D;
double r6057484 = r6057482 * r6057483;
double r6057485 = 2.0;
double r6057486 = d;
double r6057487 = r6057485 * r6057486;
double r6057488 = r6057484 / r6057487;
double r6057489 = pow(r6057488, r6057485);
double r6057490 = h;
double r6057491 = l;
double r6057492 = r6057490 / r6057491;
double r6057493 = r6057489 * r6057492;
double r6057494 = r6057481 - r6057493;
double r6057495 = sqrt(r6057494);
double r6057496 = r6057480 * r6057495;
return r6057496;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r6057497 = l;
double r6057498 = 3.5822571380375866e+122;
bool r6057499 = r6057497 <= r6057498;
double r6057500 = w0;
double r6057501 = 1.0;
double r6057502 = h;
double r6057503 = cbrt(r6057502);
double r6057504 = cbrt(r6057497);
double r6057505 = r6057503 / r6057504;
double r6057506 = 1.0;
double r6057507 = 2.0;
double r6057508 = d;
double r6057509 = r6057507 * r6057508;
double r6057510 = D;
double r6057511 = r6057509 / r6057510;
double r6057512 = M;
double r6057513 = r6057511 / r6057512;
double r6057514 = r6057506 / r6057513;
double r6057515 = 2.0;
double r6057516 = r6057507 / r6057515;
double r6057517 = pow(r6057514, r6057516);
double r6057518 = r6057512 / r6057511;
double r6057519 = pow(r6057518, r6057516);
double r6057520 = r6057519 * r6057505;
double r6057521 = cbrt(r6057520);
double r6057522 = r6057521 * r6057521;
double r6057523 = r6057521 * r6057522;
double r6057524 = r6057517 * r6057523;
double r6057525 = r6057505 * r6057524;
double r6057526 = r6057525 * r6057505;
double r6057527 = r6057501 - r6057526;
double r6057528 = sqrt(r6057527);
double r6057529 = r6057500 * r6057528;
double r6057530 = 6.489671467557263e+210;
bool r6057531 = r6057497 <= r6057530;
double r6057532 = r6057512 * r6057510;
double r6057533 = r6057532 / r6057509;
double r6057534 = pow(r6057533, r6057516);
double r6057535 = r6057502 / r6057497;
double r6057536 = r6057535 * r6057534;
double r6057537 = r6057534 * r6057536;
double r6057538 = r6057501 - r6057537;
double r6057539 = sqrt(r6057538);
double r6057540 = r6057500 * r6057539;
double r6057541 = r6057531 ? r6057540 : r6057529;
double r6057542 = r6057499 ? r6057529 : r6057541;
return r6057542;
}



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 l < 3.5822571380375866e+122 or 6.489671467557263e+210 < l Initial program 14.5
rmApplied add-cube-cbrt14.6
Applied add-cube-cbrt14.6
Applied times-frac14.6
Applied associate-*r*11.0
Simplified10.2
rmApplied sqr-pow10.2
Applied associate-*r*9.3
rmApplied add-cube-cbrt9.3
rmApplied clear-num9.3
if 3.5822571380375866e+122 < l < 6.489671467557263e+210Initial program 9.2
rmApplied sqr-pow9.2
Applied associate-*l*6.7
Final simplification9.1
herbie shell --seed 2019171 +o rules:numerics
(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))))))