w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \frac{\frac{h}{\frac{\frac{d}{\frac{M \cdot D}{2}}}{\frac{1}{\ell}}}}{d \cdot \frac{1}{\frac{M \cdot D}{2}}}}double f(double w0, double M, double D, double h, double l, double d) {
double r7157794 = w0;
double r7157795 = 1.0;
double r7157796 = M;
double r7157797 = D;
double r7157798 = r7157796 * r7157797;
double r7157799 = 2.0;
double r7157800 = d;
double r7157801 = r7157799 * r7157800;
double r7157802 = r7157798 / r7157801;
double r7157803 = pow(r7157802, r7157799);
double r7157804 = h;
double r7157805 = l;
double r7157806 = r7157804 / r7157805;
double r7157807 = r7157803 * r7157806;
double r7157808 = r7157795 - r7157807;
double r7157809 = sqrt(r7157808);
double r7157810 = r7157794 * r7157809;
return r7157810;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r7157811 = w0;
double r7157812 = 1.0;
double r7157813 = h;
double r7157814 = d;
double r7157815 = M;
double r7157816 = D;
double r7157817 = r7157815 * r7157816;
double r7157818 = 2.0;
double r7157819 = r7157817 / r7157818;
double r7157820 = r7157814 / r7157819;
double r7157821 = l;
double r7157822 = r7157812 / r7157821;
double r7157823 = r7157820 / r7157822;
double r7157824 = r7157813 / r7157823;
double r7157825 = r7157812 / r7157819;
double r7157826 = r7157814 * r7157825;
double r7157827 = r7157824 / r7157826;
double r7157828 = r7157812 - r7157827;
double r7157829 = sqrt(r7157828);
double r7157830 = r7157811 * r7157829;
return r7157830;
}



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.3
Simplified11.8
rmApplied div-inv11.8
Applied associate-/l*8.0
rmApplied div-inv8.0
Final simplification8.0
herbie shell --seed 2019162
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))