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 -6.87360346340748126 \cdot 10^{-86}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\frac{\ell}{h}}}\\
\mathbf{elif}\;\ell \le 2.11094907956916753 \cdot 10^{-203}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot h}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right) \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r160565 = w0;
double r160566 = 1.0;
double r160567 = M;
double r160568 = D;
double r160569 = r160567 * r160568;
double r160570 = 2.0;
double r160571 = d;
double r160572 = r160570 * r160571;
double r160573 = r160569 / r160572;
double r160574 = pow(r160573, r160570);
double r160575 = h;
double r160576 = l;
double r160577 = r160575 / r160576;
double r160578 = r160574 * r160577;
double r160579 = r160566 - r160578;
double r160580 = sqrt(r160579);
double r160581 = r160565 * r160580;
return r160581;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r160582 = l;
double r160583 = -6.873603463407481e-86;
bool r160584 = r160582 <= r160583;
double r160585 = w0;
double r160586 = 1.0;
double r160587 = M;
double r160588 = D;
double r160589 = r160587 * r160588;
double r160590 = 2.0;
double r160591 = d;
double r160592 = r160590 * r160591;
double r160593 = r160589 / r160592;
double r160594 = 2.0;
double r160595 = r160590 / r160594;
double r160596 = pow(r160593, r160595);
double r160597 = h;
double r160598 = r160582 / r160597;
double r160599 = r160596 / r160598;
double r160600 = r160596 * r160599;
double r160601 = r160586 - r160600;
double r160602 = sqrt(r160601);
double r160603 = r160585 * r160602;
double r160604 = 2.1109490795691675e-203;
bool r160605 = r160582 <= r160604;
double r160606 = r160592 / r160588;
double r160607 = r160587 / r160606;
double r160608 = pow(r160607, r160590);
double r160609 = r160608 * r160597;
double r160610 = r160609 / r160582;
double r160611 = r160586 - r160610;
double r160612 = sqrt(r160611);
double r160613 = r160585 * r160612;
double r160614 = cbrt(r160593);
double r160615 = r160614 * r160614;
double r160616 = r160615 * r160614;
double r160617 = pow(r160616, r160595);
double r160618 = r160617 * r160597;
double r160619 = r160618 / r160582;
double r160620 = r160596 * r160619;
double r160621 = r160586 - r160620;
double r160622 = sqrt(r160621);
double r160623 = r160585 * r160622;
double r160624 = r160605 ? r160613 : r160623;
double r160625 = r160584 ? r160603 : r160624;
return r160625;
}



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 < -6.873603463407481e-86Initial program 9.9
rmApplied associate-*r/9.9
rmApplied sqr-pow9.9
Applied associate-*l*8.2
rmApplied *-un-lft-identity8.2
Applied times-frac7.0
Simplified7.0
rmApplied associate-/l*7.8
if -6.873603463407481e-86 < l < 2.1109490795691675e-203Initial program 24.9
rmApplied associate-*r/12.2
rmApplied associate-/l*11.9
if 2.1109490795691675e-203 < l Initial program 12.4
rmApplied associate-*r/10.4
rmApplied sqr-pow10.4
Applied associate-*l*8.8
rmApplied *-un-lft-identity8.8
Applied times-frac8.0
Simplified8.0
rmApplied add-cube-cbrt8.1
Final simplification8.8
herbie shell --seed 2020089
(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))))))