w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\frac{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}}{h}}}double f(double w0, double M, double D, double h, double l, double d) {
double r193373 = w0;
double r193374 = 1.0;
double r193375 = M;
double r193376 = D;
double r193377 = r193375 * r193376;
double r193378 = 2.0;
double r193379 = d;
double r193380 = r193378 * r193379;
double r193381 = r193377 / r193380;
double r193382 = pow(r193381, r193378);
double r193383 = h;
double r193384 = l;
double r193385 = r193383 / r193384;
double r193386 = r193382 * r193385;
double r193387 = r193374 - r193386;
double r193388 = sqrt(r193387);
double r193389 = r193373 * r193388;
return r193389;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r193390 = w0;
double r193391 = 1.0;
double r193392 = M;
double r193393 = D;
double r193394 = r193392 * r193393;
double r193395 = 2.0;
double r193396 = d;
double r193397 = r193395 * r193396;
double r193398 = r193394 / r193397;
double r193399 = 2.0;
double r193400 = r193395 / r193399;
double r193401 = pow(r193398, r193400);
double r193402 = l;
double r193403 = r193402 / r193401;
double r193404 = h;
double r193405 = r193403 / r193404;
double r193406 = r193401 / r193405;
double r193407 = r193391 - r193406;
double r193408 = sqrt(r193407);
double r193409 = r193390 * r193408;
return r193409;
}



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.3
rmApplied associate-*r/10.7
rmApplied sqr-pow10.7
Applied associate-*l*9.1
rmApplied associate-/l*8.6
rmApplied associate-/r*8.7
Final simplification8.7
herbie shell --seed 2020064 +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))))))