w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \left(\left|\sqrt[3]{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}{\ell}}\right| \cdot \sqrt{\sqrt[3]{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}{\ell}}}\right)double f(double w0, double M, double D, double h, double l, double d) {
double r280696 = w0;
double r280697 = 1.0;
double r280698 = M;
double r280699 = D;
double r280700 = r280698 * r280699;
double r280701 = 2.0;
double r280702 = d;
double r280703 = r280701 * r280702;
double r280704 = r280700 / r280703;
double r280705 = pow(r280704, r280701);
double r280706 = h;
double r280707 = l;
double r280708 = r280706 / r280707;
double r280709 = r280705 * r280708;
double r280710 = r280697 - r280709;
double r280711 = sqrt(r280710);
double r280712 = r280696 * r280711;
return r280712;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r280713 = w0;
double r280714 = 1.0;
double r280715 = M;
double r280716 = D;
double r280717 = r280715 * r280716;
double r280718 = 2.0;
double r280719 = d;
double r280720 = r280718 * r280719;
double r280721 = r280717 / r280720;
double r280722 = 2.0;
double r280723 = r280718 / r280722;
double r280724 = pow(r280721, r280723);
double r280725 = h;
double r280726 = r280724 * r280725;
double r280727 = r280724 * r280726;
double r280728 = l;
double r280729 = r280727 / r280728;
double r280730 = r280714 - r280729;
double r280731 = cbrt(r280730);
double r280732 = fabs(r280731);
double r280733 = sqrt(r280731);
double r280734 = r280732 * r280733;
double r280735 = r280713 * r280734;
return r280735;
}



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.6
rmApplied sqr-pow10.6
Applied associate-*l*9.3
rmApplied add-cube-cbrt9.3
Applied sqrt-prod9.3
Simplified9.3
Final simplification9.3
herbie shell --seed 2020062 +o rules:numerics
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
:precision binary64
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))