w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\sqrt{1 - \frac{\frac{\frac{M}{2} \cdot \frac{D}{d}}{\frac{\sqrt[3]{\ell}}{\sqrt[3]{h}}} \cdot \frac{\frac{\sqrt[3]{D}}{\sqrt[3]{d}} \cdot \left(\frac{\sqrt[3]{D}}{\sqrt[3]{d}} \cdot \left(\frac{M}{2} \cdot \frac{\sqrt[3]{D}}{\sqrt[3]{d}}\right)\right)}{\frac{\sqrt[3]{\ell}}{\sqrt[3]{h}}}}{\frac{\sqrt[3]{\ell}}{\sqrt[3]{h}}}} \cdot w0double f(double w0, double M, double D, double h, double l, double d) {
double r4516933 = w0;
double r4516934 = 1.0;
double r4516935 = M;
double r4516936 = D;
double r4516937 = r4516935 * r4516936;
double r4516938 = 2.0;
double r4516939 = d;
double r4516940 = r4516938 * r4516939;
double r4516941 = r4516937 / r4516940;
double r4516942 = pow(r4516941, r4516938);
double r4516943 = h;
double r4516944 = l;
double r4516945 = r4516943 / r4516944;
double r4516946 = r4516942 * r4516945;
double r4516947 = r4516934 - r4516946;
double r4516948 = sqrt(r4516947);
double r4516949 = r4516933 * r4516948;
return r4516949;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r4516950 = 1.0;
double r4516951 = M;
double r4516952 = 2.0;
double r4516953 = r4516951 / r4516952;
double r4516954 = D;
double r4516955 = d;
double r4516956 = r4516954 / r4516955;
double r4516957 = r4516953 * r4516956;
double r4516958 = l;
double r4516959 = cbrt(r4516958);
double r4516960 = h;
double r4516961 = cbrt(r4516960);
double r4516962 = r4516959 / r4516961;
double r4516963 = r4516957 / r4516962;
double r4516964 = cbrt(r4516954);
double r4516965 = cbrt(r4516955);
double r4516966 = r4516964 / r4516965;
double r4516967 = r4516953 * r4516966;
double r4516968 = r4516966 * r4516967;
double r4516969 = r4516966 * r4516968;
double r4516970 = r4516969 / r4516962;
double r4516971 = r4516963 * r4516970;
double r4516972 = r4516971 / r4516962;
double r4516973 = r4516950 - r4516972;
double r4516974 = sqrt(r4516973);
double r4516975 = w0;
double r4516976 = r4516974 * r4516975;
return r4516976;
}



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
Simplified14.0
rmApplied add-cube-cbrt14.0
Applied add-cube-cbrt14.0
Applied times-frac14.0
Applied associate-*r*10.8
Simplified8.3
rmApplied associate-/r*8.3
rmApplied *-un-lft-identity8.3
Applied associate-*r*8.3
Simplified8.4
rmApplied add-cube-cbrt8.4
Applied add-cube-cbrt8.4
Applied times-frac8.4
Applied associate-*r*8.4
Simplified8.4
Final simplification8.4
herbie shell --seed 2019130 +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))))))