w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;D \le -3.827325132878031076153933281201222059758 \cdot 10^{158}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{2} \cdot \frac{h}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \left(\sqrt{\sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell}} \cdot \left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\sqrt[3]{h} \cdot \sqrt[3]{h}\right)}{\sqrt[3]{\ell}} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)}} \cdot \sqrt{\sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell}} \cdot \left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\sqrt[3]{h} \cdot \sqrt[3]{h}\right)}{\sqrt[3]{\ell}} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)}}\right)\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r149520 = w0;
double r149521 = 1.0;
double r149522 = M;
double r149523 = D;
double r149524 = r149522 * r149523;
double r149525 = 2.0;
double r149526 = d;
double r149527 = r149525 * r149526;
double r149528 = r149524 / r149527;
double r149529 = pow(r149528, r149525);
double r149530 = h;
double r149531 = l;
double r149532 = r149530 / r149531;
double r149533 = r149529 * r149532;
double r149534 = r149521 - r149533;
double r149535 = sqrt(r149534);
double r149536 = r149520 * r149535;
return r149536;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r149537 = D;
double r149538 = -3.827325132878031e+158;
bool r149539 = r149537 <= r149538;
double r149540 = w0;
double r149541 = 1.0;
double r149542 = M;
double r149543 = 2.0;
double r149544 = r149542 / r149543;
double r149545 = d;
double r149546 = r149537 / r149545;
double r149547 = r149544 * r149546;
double r149548 = pow(r149547, r149543);
double r149549 = h;
double r149550 = l;
double r149551 = r149549 / r149550;
double r149552 = r149548 * r149551;
double r149553 = r149541 - r149552;
double r149554 = sqrt(r149553);
double r149555 = r149540 * r149554;
double r149556 = r149542 * r149537;
double r149557 = r149543 * r149545;
double r149558 = r149556 / r149557;
double r149559 = 2.0;
double r149560 = r149543 / r149559;
double r149561 = pow(r149558, r149560);
double r149562 = cbrt(r149550);
double r149563 = r149561 / r149562;
double r149564 = cbrt(r149549);
double r149565 = r149564 * r149564;
double r149566 = r149561 * r149565;
double r149567 = r149566 / r149562;
double r149568 = r149564 / r149562;
double r149569 = r149567 * r149568;
double r149570 = r149563 * r149569;
double r149571 = r149541 - r149570;
double r149572 = sqrt(r149571);
double r149573 = sqrt(r149572);
double r149574 = r149573 * r149573;
double r149575 = r149540 * r149574;
double r149576 = r149539 ? r149555 : r149575;
return r149576;
}



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 D < -3.827325132878031e+158Initial program 24.1
rmApplied times-frac23.3
if -3.827325132878031e+158 < D Initial program 12.9
rmApplied add-cube-cbrt12.9
Applied *-un-lft-identity12.9
Applied times-frac12.9
Applied associate-*r*10.6
Simplified10.6
rmApplied sqr-pow10.6
Applied times-frac9.6
Applied associate-*l*8.7
rmApplied *-un-lft-identity8.7
Applied add-cube-cbrt8.7
Applied times-frac8.7
Applied associate-*r*7.3
Simplified7.3
rmApplied add-sqr-sqrt7.3
Applied sqrt-prod7.4
Final simplification8.5
herbie shell --seed 2019308
(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))))))