w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}} \cdot \left(\left(\left(\sqrt[3]{\frac{\frac{M}{d} \cdot D}{2}} \cdot \sqrt[3]{\frac{\frac{M}{d} \cdot D}{2}}\right) \cdot \left(\sqrt[3]{\frac{\frac{M}{d} \cdot D}{2}} \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)\right) \cdot \frac{\sqrt[3]{h} \cdot \frac{\frac{M}{d} \cdot D}{2}}{\sqrt[3]{\ell}}\right)}double f(double w0, double M, double D, double h, double l, double d) {
double r4525717 = w0;
double r4525718 = 1.0;
double r4525719 = M;
double r4525720 = D;
double r4525721 = r4525719 * r4525720;
double r4525722 = 2.0;
double r4525723 = d;
double r4525724 = r4525722 * r4525723;
double r4525725 = r4525721 / r4525724;
double r4525726 = pow(r4525725, r4525722);
double r4525727 = h;
double r4525728 = l;
double r4525729 = r4525727 / r4525728;
double r4525730 = r4525726 * r4525729;
double r4525731 = r4525718 - r4525730;
double r4525732 = sqrt(r4525731);
double r4525733 = r4525717 * r4525732;
return r4525733;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r4525734 = w0;
double r4525735 = 1.0;
double r4525736 = h;
double r4525737 = cbrt(r4525736);
double r4525738 = l;
double r4525739 = cbrt(r4525738);
double r4525740 = r4525737 / r4525739;
double r4525741 = M;
double r4525742 = d;
double r4525743 = r4525741 / r4525742;
double r4525744 = D;
double r4525745 = r4525743 * r4525744;
double r4525746 = 2.0;
double r4525747 = r4525745 / r4525746;
double r4525748 = cbrt(r4525747);
double r4525749 = r4525748 * r4525748;
double r4525750 = r4525748 * r4525740;
double r4525751 = r4525749 * r4525750;
double r4525752 = r4525737 * r4525747;
double r4525753 = r4525752 / r4525739;
double r4525754 = r4525751 * r4525753;
double r4525755 = r4525740 * r4525754;
double r4525756 = r4525735 - r4525755;
double r4525757 = sqrt(r4525756);
double r4525758 = r4525734 * r4525757;
return r4525758;
}



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 13.4
Simplified13.4
rmApplied add-cube-cbrt13.4
Applied add-cube-cbrt13.4
Applied times-frac13.4
Applied associate-*r*10.4
Simplified8.0
rmApplied associate-*r/8.0
rmApplied add-cube-cbrt8.0
Applied associate-*l*8.0
Final simplification8.0
herbie shell --seed 2019133 +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))))))