w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;\frac{h}{\ell} \le -1.510341556579411067921188404923562874146 \cdot 10^{201}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{2}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)\right)\right) \cdot \frac{1}{\ell}}\\
\mathbf{elif}\;\frac{h}{\ell} \le -8.676239891926242557896224383038014757216 \cdot 10^{-146}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot \frac{h}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r128183 = w0;
double r128184 = 1.0;
double r128185 = M;
double r128186 = D;
double r128187 = r128185 * r128186;
double r128188 = 2.0;
double r128189 = d;
double r128190 = r128188 * r128189;
double r128191 = r128187 / r128190;
double r128192 = pow(r128191, r128188);
double r128193 = h;
double r128194 = l;
double r128195 = r128193 / r128194;
double r128196 = r128192 * r128195;
double r128197 = r128184 - r128196;
double r128198 = sqrt(r128197);
double r128199 = r128183 * r128198;
return r128199;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r128200 = h;
double r128201 = l;
double r128202 = r128200 / r128201;
double r128203 = -1.510341556579411e+201;
bool r128204 = r128202 <= r128203;
double r128205 = w0;
double r128206 = 1.0;
double r128207 = M;
double r128208 = D;
double r128209 = r128207 * r128208;
double r128210 = 2.0;
double r128211 = d;
double r128212 = r128210 * r128211;
double r128213 = r128209 / r128212;
double r128214 = 2.0;
double r128215 = r128210 / r128214;
double r128216 = pow(r128213, r128215);
double r128217 = r128207 / r128210;
double r128218 = pow(r128217, r128215);
double r128219 = r128208 / r128211;
double r128220 = pow(r128219, r128215);
double r128221 = r128220 * r128200;
double r128222 = r128218 * r128221;
double r128223 = r128216 * r128222;
double r128224 = 1.0;
double r128225 = r128224 / r128201;
double r128226 = r128223 * r128225;
double r128227 = r128206 - r128226;
double r128228 = sqrt(r128227);
double r128229 = r128205 * r128228;
double r128230 = -8.676239891926243e-146;
bool r128231 = r128202 <= r128230;
double r128232 = r128212 / r128208;
double r128233 = r128207 / r128232;
double r128234 = pow(r128233, r128210);
double r128235 = r128234 * r128202;
double r128236 = r128206 - r128235;
double r128237 = sqrt(r128236);
double r128238 = r128205 * r128237;
double r128239 = sqrt(r128206);
double r128240 = r128205 * r128239;
double r128241 = r128231 ? r128238 : r128240;
double r128242 = r128204 ? r128229 : r128241;
return r128242;
}



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 (/ h l) < -1.510341556579411e+201Initial program 40.9
rmApplied div-inv40.9
Applied associate-*r*21.6
rmApplied sqr-pow21.6
Applied associate-*l*20.3
rmApplied times-frac21.2
Applied unpow-prod-down21.2
Applied associate-*l*23.7
if -1.510341556579411e+201 < (/ h l) < -8.676239891926243e-146Initial program 13.2
rmApplied associate-/l*12.9
if -8.676239891926243e-146 < (/ h l) Initial program 9.9
rmApplied div-inv9.9
Applied associate-*r*7.0
rmApplied sqr-pow7.0
Applied associate-*l*5.0
rmApplied add-cube-cbrt5.0
Applied associate-*r*5.0
Taylor expanded around 0 5.9
Final simplification10.0
herbie shell --seed 2019306
(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))))))