w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}double f(double w0, double M, double D, double h, double l, double d) {
double r277523 = w0;
double r277524 = 1.0;
double r277525 = M;
double r277526 = D;
double r277527 = r277525 * r277526;
double r277528 = 2.0;
double r277529 = d;
double r277530 = r277528 * r277529;
double r277531 = r277527 / r277530;
double r277532 = pow(r277531, r277528);
double r277533 = h;
double r277534 = l;
double r277535 = r277533 / r277534;
double r277536 = r277532 * r277535;
double r277537 = r277524 - r277536;
double r277538 = sqrt(r277537);
double r277539 = r277523 * r277538;
return r277539;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r277540 = w0;
double r277541 = 1.0;
double r277542 = M;
double r277543 = D;
double r277544 = r277542 * r277543;
double r277545 = 2.0;
double r277546 = d;
double r277547 = r277545 * r277546;
double r277548 = r277544 / r277547;
double r277549 = 2.0;
double r277550 = r277545 / r277549;
double r277551 = pow(r277548, r277550);
double r277552 = h;
double r277553 = r277551 * r277552;
double r277554 = l;
double r277555 = r277553 / r277554;
double r277556 = r277551 * r277555;
double r277557 = r277541 - r277556;
double r277558 = sqrt(r277557);
double r277559 = r277540 * r277558;
return r277559;
}



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 associate-*r/10.6
rmApplied sqr-pow10.6
Applied associate-*l*9.2
rmApplied *-un-lft-identity9.2
Applied times-frac8.4
Simplified8.4
Final simplification8.4
herbie shell --seed 2019350
(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))))))