w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\sqrt{1 - \left(\left(h \cdot \frac{\frac{\frac{M \cdot D}{d}}{\sqrt{2}}}{\ell}\right) \cdot \frac{1}{\sqrt{2}}\right) \cdot \frac{\frac{M \cdot D}{d}}{2}} \cdot w0double f(double w0, double M, double D, double h, double l, double d) {
double r3398880 = w0;
double r3398881 = 1.0;
double r3398882 = M;
double r3398883 = D;
double r3398884 = r3398882 * r3398883;
double r3398885 = 2.0;
double r3398886 = d;
double r3398887 = r3398885 * r3398886;
double r3398888 = r3398884 / r3398887;
double r3398889 = pow(r3398888, r3398885);
double r3398890 = h;
double r3398891 = l;
double r3398892 = r3398890 / r3398891;
double r3398893 = r3398889 * r3398892;
double r3398894 = r3398881 - r3398893;
double r3398895 = sqrt(r3398894);
double r3398896 = r3398880 * r3398895;
return r3398896;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r3398897 = 1.0;
double r3398898 = h;
double r3398899 = M;
double r3398900 = D;
double r3398901 = r3398899 * r3398900;
double r3398902 = d;
double r3398903 = r3398901 / r3398902;
double r3398904 = 2.0;
double r3398905 = sqrt(r3398904);
double r3398906 = r3398903 / r3398905;
double r3398907 = l;
double r3398908 = r3398906 / r3398907;
double r3398909 = r3398898 * r3398908;
double r3398910 = r3398897 / r3398905;
double r3398911 = r3398909 * r3398910;
double r3398912 = r3398903 / r3398904;
double r3398913 = r3398911 * r3398912;
double r3398914 = r3398897 - r3398913;
double r3398915 = sqrt(r3398914);
double r3398916 = w0;
double r3398917 = r3398915 * r3398916;
return r3398917;
}



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.1
Simplified12.2
rmApplied associate-/r/8.4
rmApplied *-un-lft-identity8.4
Applied add-sqr-sqrt8.5
Applied *-un-lft-identity8.5
Applied times-frac8.5
Applied times-frac8.5
Applied associate-*l*8.5
Final simplification8.5
herbie shell --seed 2019154 +o rules:numerics
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))