w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot h}{\ell} \cdot \frac{M}{\frac{2 \cdot d}{D}}} \cdot w0double f(double w0, double M, double D, double h, double l, double d) {
double r48970291 = w0;
double r48970292 = 1.0;
double r48970293 = M;
double r48970294 = D;
double r48970295 = r48970293 * r48970294;
double r48970296 = 2.0;
double r48970297 = d;
double r48970298 = r48970296 * r48970297;
double r48970299 = r48970295 / r48970298;
double r48970300 = pow(r48970299, r48970296);
double r48970301 = h;
double r48970302 = l;
double r48970303 = r48970301 / r48970302;
double r48970304 = r48970300 * r48970303;
double r48970305 = r48970292 - r48970304;
double r48970306 = sqrt(r48970305);
double r48970307 = r48970291 * r48970306;
return r48970307;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r48970308 = 1.0;
double r48970309 = M;
double r48970310 = D;
double r48970311 = r48970309 * r48970310;
double r48970312 = 2.0;
double r48970313 = d;
double r48970314 = r48970312 * r48970313;
double r48970315 = r48970311 / r48970314;
double r48970316 = h;
double r48970317 = r48970315 * r48970316;
double r48970318 = l;
double r48970319 = r48970317 / r48970318;
double r48970320 = r48970314 / r48970310;
double r48970321 = r48970309 / r48970320;
double r48970322 = r48970319 * r48970321;
double r48970323 = r48970308 - r48970322;
double r48970324 = sqrt(r48970323);
double r48970325 = w0;
double r48970326 = r48970324 * r48970325;
return r48970326;
}



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.4
Simplified12.1
rmApplied associate-*l/8.3
rmApplied associate-/l*9.1
Final simplification9.1
herbie shell --seed 2019128 +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))))))