w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell} \le 1.03569031681836787 \cdot 10^{292}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{h}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}{\ell}}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r270216 = w0;
double r270217 = 1.0;
double r270218 = M;
double r270219 = D;
double r270220 = r270218 * r270219;
double r270221 = 2.0;
double r270222 = d;
double r270223 = r270221 * r270222;
double r270224 = r270220 / r270223;
double r270225 = pow(r270224, r270221);
double r270226 = h;
double r270227 = l;
double r270228 = r270226 / r270227;
double r270229 = r270225 * r270228;
double r270230 = r270217 - r270229;
double r270231 = sqrt(r270230);
double r270232 = r270216 * r270231;
return r270232;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r270233 = 1.0;
double r270234 = M;
double r270235 = D;
double r270236 = r270234 * r270235;
double r270237 = 2.0;
double r270238 = d;
double r270239 = r270237 * r270238;
double r270240 = r270236 / r270239;
double r270241 = pow(r270240, r270237);
double r270242 = h;
double r270243 = l;
double r270244 = r270242 / r270243;
double r270245 = r270241 * r270244;
double r270246 = r270233 - r270245;
double r270247 = 1.0356903168183679e+292;
bool r270248 = r270246 <= r270247;
double r270249 = w0;
double r270250 = 2.0;
double r270251 = r270237 / r270250;
double r270252 = pow(r270240, r270251);
double r270253 = r270252 * r270244;
double r270254 = r270252 * r270253;
double r270255 = r270233 - r270254;
double r270256 = sqrt(r270255);
double r270257 = r270249 * r270256;
double r270258 = r270234 / r270237;
double r270259 = r270235 / r270238;
double r270260 = r270258 * r270259;
double r270261 = pow(r270260, r270251);
double r270262 = r270261 * r270242;
double r270263 = r270261 * r270262;
double r270264 = r270263 / r270243;
double r270265 = r270233 - r270264;
double r270266 = sqrt(r270265);
double r270267 = r270249 * r270266;
double r270268 = r270248 ? r270257 : r270267;
return r270268;
}



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
if (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))) < 1.0356903168183679e+292Initial program 0.2
rmApplied sqr-pow0.2
Applied associate-*l*0.2
if 1.0356903168183679e+292 < (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))) Initial program 63.4
rmApplied associate-*r/45.7
rmApplied times-frac44.1
rmApplied sqr-pow44.1
Applied associate-*l*37.2
Final simplification8.4
herbie shell --seed 2020083 +o rules:numerics
(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))))))