w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \left(\left({\left(\left(M \cdot D\right) \cdot \frac{1}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left|\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right|\right) \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left|\frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right|\right)\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}double f(double w0, double M, double D, double h, double l, double d) {
double r111096 = w0;
double r111097 = 1.0;
double r111098 = M;
double r111099 = D;
double r111100 = r111098 * r111099;
double r111101 = 2.0;
double r111102 = d;
double r111103 = r111101 * r111102;
double r111104 = r111100 / r111103;
double r111105 = pow(r111104, r111101);
double r111106 = h;
double r111107 = l;
double r111108 = r111106 / r111107;
double r111109 = r111105 * r111108;
double r111110 = r111097 - r111109;
double r111111 = sqrt(r111110);
double r111112 = r111096 * r111111;
return r111112;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r111113 = w0;
double r111114 = 1.0;
double r111115 = M;
double r111116 = D;
double r111117 = r111115 * r111116;
double r111118 = 1.0;
double r111119 = 2.0;
double r111120 = d;
double r111121 = r111119 * r111120;
double r111122 = r111118 / r111121;
double r111123 = r111117 * r111122;
double r111124 = 2.0;
double r111125 = r111119 / r111124;
double r111126 = pow(r111123, r111125);
double r111127 = h;
double r111128 = cbrt(r111127);
double r111129 = l;
double r111130 = cbrt(r111129);
double r111131 = r111128 / r111130;
double r111132 = fabs(r111131);
double r111133 = r111126 * r111132;
double r111134 = r111117 / r111121;
double r111135 = pow(r111134, r111125);
double r111136 = r111135 * r111132;
double r111137 = r111133 * r111136;
double r111138 = r111137 * r111131;
double r111139 = r111114 - r111138;
double r111140 = sqrt(r111139);
double r111141 = r111113 * r111140;
return r111141;
}



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.7
rmApplied add-cube-cbrt13.7
Applied add-cube-cbrt13.7
Applied times-frac13.7
Applied associate-*r*10.7
rmApplied add-sqr-sqrt10.7
Applied sqr-pow10.7
Applied unswap-sqr9.1
Simplified9.0
Simplified8.2
rmApplied div-inv8.2
Final simplification8.2
herbie shell --seed 2019212 +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))))))