w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\sqrt{1 - \left(\left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt[3]{\ell}} \cdot \frac{\frac{\frac{M \cdot D}{d}}{\sqrt{\sqrt{2}}}}{\frac{1}{h}}\right) \cdot \frac{\frac{1}{\sqrt{2}}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\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 r2761775 = w0;
double r2761776 = 1.0;
double r2761777 = M;
double r2761778 = D;
double r2761779 = r2761777 * r2761778;
double r2761780 = 2.0;
double r2761781 = d;
double r2761782 = r2761780 * r2761781;
double r2761783 = r2761779 / r2761782;
double r2761784 = pow(r2761783, r2761780);
double r2761785 = h;
double r2761786 = l;
double r2761787 = r2761785 / r2761786;
double r2761788 = r2761784 * r2761787;
double r2761789 = r2761776 - r2761788;
double r2761790 = sqrt(r2761789);
double r2761791 = r2761775 * r2761790;
return r2761791;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r2761792 = 1.0;
double r2761793 = 2.0;
double r2761794 = sqrt(r2761793);
double r2761795 = sqrt(r2761794);
double r2761796 = r2761792 / r2761795;
double r2761797 = l;
double r2761798 = cbrt(r2761797);
double r2761799 = r2761796 / r2761798;
double r2761800 = M;
double r2761801 = D;
double r2761802 = r2761800 * r2761801;
double r2761803 = d;
double r2761804 = r2761802 / r2761803;
double r2761805 = r2761804 / r2761795;
double r2761806 = h;
double r2761807 = r2761792 / r2761806;
double r2761808 = r2761805 / r2761807;
double r2761809 = r2761799 * r2761808;
double r2761810 = r2761792 / r2761794;
double r2761811 = r2761798 * r2761798;
double r2761812 = r2761810 / r2761811;
double r2761813 = r2761809 * r2761812;
double r2761814 = r2761804 / r2761793;
double r2761815 = r2761813 * r2761814;
double r2761816 = r2761792 - r2761815;
double r2761817 = sqrt(r2761816);
double r2761818 = w0;
double r2761819 = r2761817 * r2761818;
return r2761819;
}



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
Simplified11.5
rmApplied *-un-lft-identity11.5
Applied add-cube-cbrt11.6
Applied times-frac11.6
Applied add-sqr-sqrt11.6
Applied *-un-lft-identity11.6
Applied times-frac11.6
Applied times-frac8.8
Simplified8.8
rmApplied div-inv8.8
Applied add-sqr-sqrt8.8
Applied sqrt-prod8.8
Applied *-un-lft-identity8.8
Applied times-frac8.8
Applied times-frac8.1
Final simplification8.1
herbie shell --seed 2019155 +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))))))