Average Error: 14.2 → 8.9
Time: 11.2s
Precision: 64
\[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 -3.06029486315833535 \cdot 10^{139}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\ \mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\ \;\;\;\;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{1}{\frac{\ell}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}\\ \end{array}\]
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 -3.06029486315833535 \cdot 10^{139}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\

\mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\
\;\;\;\;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{1}{\frac{\ell}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r271389 = w0;
        double r271390 = 1.0;
        double r271391 = M;
        double r271392 = D;
        double r271393 = r271391 * r271392;
        double r271394 = 2.0;
        double r271395 = d;
        double r271396 = r271394 * r271395;
        double r271397 = r271393 / r271396;
        double r271398 = pow(r271397, r271394);
        double r271399 = h;
        double r271400 = l;
        double r271401 = r271399 / r271400;
        double r271402 = r271398 * r271401;
        double r271403 = r271390 - r271402;
        double r271404 = sqrt(r271403);
        double r271405 = r271389 * r271404;
        return r271405;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r271406 = h;
        double r271407 = l;
        double r271408 = r271406 / r271407;
        double r271409 = -3.0602948631583354e+139;
        bool r271410 = r271408 <= r271409;
        double r271411 = w0;
        double r271412 = 1.0;
        double r271413 = 1.0;
        double r271414 = M;
        double r271415 = D;
        double r271416 = r271414 * r271415;
        double r271417 = 2.0;
        double r271418 = d;
        double r271419 = r271417 * r271418;
        double r271420 = r271416 / r271419;
        double r271421 = pow(r271420, r271417);
        double r271422 = r271421 * r271406;
        double r271423 = r271407 / r271422;
        double r271424 = r271413 / r271423;
        double r271425 = r271412 - r271424;
        double r271426 = sqrt(r271425);
        double r271427 = r271411 * r271426;
        double r271428 = -4.417994843846055e-176;
        bool r271429 = r271408 <= r271428;
        double r271430 = 2.0;
        double r271431 = r271417 / r271430;
        double r271432 = pow(r271420, r271431);
        double r271433 = r271432 * r271408;
        double r271434 = r271432 * r271433;
        double r271435 = r271412 - r271434;
        double r271436 = sqrt(r271435);
        double r271437 = r271411 * r271436;
        double r271438 = r271419 / r271415;
        double r271439 = r271414 / r271438;
        double r271440 = pow(r271439, r271431);
        double r271441 = r271440 * r271406;
        double r271442 = r271440 * r271441;
        double r271443 = r271407 / r271442;
        double r271444 = r271413 / r271443;
        double r271445 = r271412 - r271444;
        double r271446 = sqrt(r271445);
        double r271447 = r271411 * r271446;
        double r271448 = r271429 ? r271437 : r271447;
        double r271449 = r271410 ? r271427 : r271448;
        return r271449;
}

Error

Bits error versus w0

Bits error versus M

Bits error versus D

Bits error versus h

Bits error versus l

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if (/ h l) < -3.0602948631583354e+139

    1. Initial program 34.4

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Using strategy rm
    3. Applied associate-*r/19.9

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}{\ell}}}\]
    4. Using strategy rm
    5. Applied clear-num19.9

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}}\]

    if -3.0602948631583354e+139 < (/ h l) < -4.417994843846055e-176

    1. Initial program 14.2

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Using strategy rm
    3. Applied sqr-pow14.2

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \frac{h}{\ell}}\]
    4. Applied associate-*l*12.7

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{{\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)}}\]

    if -4.417994843846055e-176 < (/ h l)

    1. Initial program 8.6

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Using strategy rm
    3. Applied associate-*r/5.8

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}{\ell}}}\]
    4. Using strategy rm
    5. Applied clear-num5.8

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}}\]
    6. Using strategy rm
    7. Applied associate-/l*5.7

      \[\leadsto w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\color{blue}{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}}^{2} \cdot h}}}\]
    8. Using strategy rm
    9. Applied sqr-pow5.7

      \[\leadsto w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{\color{blue}{\left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot h}}}\]
    10. Applied associate-*l*3.9

      \[\leadsto w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{\color{blue}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification8.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{h}{\ell} \le -3.06029486315833535 \cdot 10^{139}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\ \mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\ \;\;\;\;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{1}{\frac{\ell}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020056 
(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))))))