w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \frac{1}{\frac{\frac{\ell}{{\left(\frac{\sqrt[3]{M} \cdot \sqrt[3]{M}}{\frac{d}{D} \cdot \frac{2}{\sqrt[3]{M}}}\right)}^{\left(\frac{2}{2}\right)}}}{{\left(\frac{M}{\frac{d}{D} \cdot 2}\right)}^{\left(\frac{2}{2}\right)} \cdot h}}}double f(double w0, double M, double D, double h, double l, double d) {
double r144827 = w0;
double r144828 = 1.0;
double r144829 = M;
double r144830 = D;
double r144831 = r144829 * r144830;
double r144832 = 2.0;
double r144833 = d;
double r144834 = r144832 * r144833;
double r144835 = r144831 / r144834;
double r144836 = pow(r144835, r144832);
double r144837 = h;
double r144838 = l;
double r144839 = r144837 / r144838;
double r144840 = r144836 * r144839;
double r144841 = r144828 - r144840;
double r144842 = sqrt(r144841);
double r144843 = r144827 * r144842;
return r144843;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r144844 = w0;
double r144845 = 1.0;
double r144846 = 1.0;
double r144847 = l;
double r144848 = M;
double r144849 = cbrt(r144848);
double r144850 = r144849 * r144849;
double r144851 = d;
double r144852 = D;
double r144853 = r144851 / r144852;
double r144854 = 2.0;
double r144855 = r144854 / r144849;
double r144856 = r144853 * r144855;
double r144857 = r144850 / r144856;
double r144858 = 2.0;
double r144859 = r144854 / r144858;
double r144860 = pow(r144857, r144859);
double r144861 = r144847 / r144860;
double r144862 = r144853 * r144854;
double r144863 = r144848 / r144862;
double r144864 = pow(r144863, r144859);
double r144865 = h;
double r144866 = r144864 * r144865;
double r144867 = r144861 / r144866;
double r144868 = r144846 / r144867;
double r144869 = r144845 - r144868;
double r144870 = sqrt(r144869);
double r144871 = r144844 * r144870;
return r144871;
}



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.0
rmApplied associate-*r/10.8
Simplified10.7
rmApplied sqr-pow10.7
Applied associate-*l*9.1
Simplified9.1
rmApplied clear-num9.1
Simplified8.4
rmApplied add-cube-cbrt8.4
Applied associate-/l*8.4
Simplified8.4
Final simplification8.4
herbie shell --seed 2019196 +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))))))