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 r226300 = w0;
double r226301 = 1.0;
double r226302 = M;
double r226303 = D;
double r226304 = r226302 * r226303;
double r226305 = 2.0;
double r226306 = d;
double r226307 = r226305 * r226306;
double r226308 = r226304 / r226307;
double r226309 = pow(r226308, r226305);
double r226310 = h;
double r226311 = l;
double r226312 = r226310 / r226311;
double r226313 = r226309 * r226312;
double r226314 = r226301 - r226313;
double r226315 = sqrt(r226314);
double r226316 = r226300 * r226315;
return r226316;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r226317 = w0;
double r226318 = 1.0;
double r226319 = M;
double r226320 = D;
double r226321 = r226319 * r226320;
double r226322 = 2.0;
double r226323 = d;
double r226324 = r226322 * r226323;
double r226325 = r226321 / r226324;
double r226326 = 2.0;
double r226327 = r226322 / r226326;
double r226328 = pow(r226325, r226327);
double r226329 = h;
double r226330 = r226328 * r226329;
double r226331 = l;
double r226332 = r226330 / r226331;
double r226333 = r226328 * r226332;
double r226334 = r226318 - r226333;
double r226335 = sqrt(r226334);
double r226336 = r226317 * r226335;
return r226336;
}



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.4
rmApplied sqr-pow10.4
Applied associate-*l*8.9
rmApplied *-un-lft-identity8.9
Applied times-frac8.2
Simplified8.2
Final simplification8.2
herbie shell --seed 2019351
(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))))))