w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\left(\sqrt{\sqrt{1 - \frac{M \cdot D}{2 \cdot d} \cdot \frac{\sqrt[3]{\frac{M \cdot D}{2 \cdot d} \cdot h} \cdot \left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d} \cdot h} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d} \cdot h}\right)}{\ell}}} \cdot \sqrt{\sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot h}{\ell} \cdot \frac{M \cdot D}{2 \cdot d}}}\right) \cdot w0double f(double w0, double M, double D, double h, double l, double d) {
double r25160526 = w0;
double r25160527 = 1.0;
double r25160528 = M;
double r25160529 = D;
double r25160530 = r25160528 * r25160529;
double r25160531 = 2.0;
double r25160532 = d;
double r25160533 = r25160531 * r25160532;
double r25160534 = r25160530 / r25160533;
double r25160535 = pow(r25160534, r25160531);
double r25160536 = h;
double r25160537 = l;
double r25160538 = r25160536 / r25160537;
double r25160539 = r25160535 * r25160538;
double r25160540 = r25160527 - r25160539;
double r25160541 = sqrt(r25160540);
double r25160542 = r25160526 * r25160541;
return r25160542;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r25160543 = 1.0;
double r25160544 = M;
double r25160545 = D;
double r25160546 = r25160544 * r25160545;
double r25160547 = 2.0;
double r25160548 = d;
double r25160549 = r25160547 * r25160548;
double r25160550 = r25160546 / r25160549;
double r25160551 = h;
double r25160552 = r25160550 * r25160551;
double r25160553 = cbrt(r25160552);
double r25160554 = r25160553 * r25160553;
double r25160555 = r25160553 * r25160554;
double r25160556 = l;
double r25160557 = r25160555 / r25160556;
double r25160558 = r25160550 * r25160557;
double r25160559 = r25160543 - r25160558;
double r25160560 = sqrt(r25160559);
double r25160561 = sqrt(r25160560);
double r25160562 = r25160552 / r25160556;
double r25160563 = r25160562 * r25160550;
double r25160564 = r25160543 - r25160563;
double r25160565 = sqrt(r25160564);
double r25160566 = sqrt(r25160565);
double r25160567 = r25160561 * r25160566;
double r25160568 = w0;
double r25160569 = r25160567 * r25160568;
return r25160569;
}



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.1
Simplified11.8
rmApplied associate-*l/7.9
rmApplied add-sqr-sqrt7.9
Applied sqrt-prod7.9
rmApplied add-cube-cbrt7.9
Final simplification7.9
herbie shell --seed 2019124 +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))))))