w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\sqrt[3]{\ell}}}double f(double w0, double M, double D, double h, double l, double d) {
double r168713 = w0;
double r168714 = 1.0;
double r168715 = M;
double r168716 = D;
double r168717 = r168715 * r168716;
double r168718 = 2.0;
double r168719 = d;
double r168720 = r168718 * r168719;
double r168721 = r168717 / r168720;
double r168722 = pow(r168721, r168718);
double r168723 = h;
double r168724 = l;
double r168725 = r168723 / r168724;
double r168726 = r168722 * r168725;
double r168727 = r168714 - r168726;
double r168728 = sqrt(r168727);
double r168729 = r168713 * r168728;
return r168729;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r168730 = w0;
double r168731 = 1.0;
double r168732 = M;
double r168733 = D;
double r168734 = r168732 * r168733;
double r168735 = 2.0;
double r168736 = d;
double r168737 = r168735 * r168736;
double r168738 = r168734 / r168737;
double r168739 = 2.0;
double r168740 = r168735 / r168739;
double r168741 = pow(r168738, r168740);
double r168742 = l;
double r168743 = cbrt(r168742);
double r168744 = r168743 * r168743;
double r168745 = r168741 / r168744;
double r168746 = h;
double r168747 = r168741 * r168746;
double r168748 = r168747 / r168743;
double r168749 = r168745 * r168748;
double r168750 = r168731 - r168749;
double r168751 = sqrt(r168750);
double r168752 = r168730 * r168751;
return r168752;
}



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
Initial program 14.6
rmApplied associate-*r/11.2
rmApplied sqr-pow11.2
Applied associate-*l*9.7
rmApplied add-cube-cbrt9.7
Applied times-frac8.8
Final simplification8.8
herbie shell --seed 2020024 +o rules:numerics
(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))))))