w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}w0 \cdot \sqrt{1 - \frac{\frac{D \cdot M}{d}}{2} \cdot \left(\frac{\frac{1}{2}}{\frac{1}{h}} \cdot \frac{\frac{D \cdot M}{d}}{\ell}\right)}double f(double w0, double M, double D, double h, double l, double d) {
double r2402176 = w0;
double r2402177 = 1.0;
double r2402178 = M;
double r2402179 = D;
double r2402180 = r2402178 * r2402179;
double r2402181 = 2.0;
double r2402182 = d;
double r2402183 = r2402181 * r2402182;
double r2402184 = r2402180 / r2402183;
double r2402185 = pow(r2402184, r2402181);
double r2402186 = h;
double r2402187 = l;
double r2402188 = r2402186 / r2402187;
double r2402189 = r2402185 * r2402188;
double r2402190 = r2402177 - r2402189;
double r2402191 = sqrt(r2402190);
double r2402192 = r2402176 * r2402191;
return r2402192;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r2402193 = w0;
double r2402194 = 1.0;
double r2402195 = D;
double r2402196 = M;
double r2402197 = r2402195 * r2402196;
double r2402198 = d;
double r2402199 = r2402197 / r2402198;
double r2402200 = 2.0;
double r2402201 = r2402199 / r2402200;
double r2402202 = 0.5;
double r2402203 = h;
double r2402204 = r2402194 / r2402203;
double r2402205 = r2402202 / r2402204;
double r2402206 = l;
double r2402207 = r2402199 / r2402206;
double r2402208 = r2402205 * r2402207;
double r2402209 = r2402201 * r2402208;
double r2402210 = r2402194 - r2402209;
double r2402211 = sqrt(r2402210);
double r2402212 = r2402193 * r2402211;
return r2402212;
}



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.0
Simplified12.1
rmApplied div-inv12.1
Applied div-inv12.1
Applied times-frac8.4
Final simplification8.4
herbie shell --seed 2019153 +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))))))