Average Error: 14.1 → 8.5
Time: 57.5s
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 -2.282180062770275197908078530250940945557 \cdot 10^{149}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\ell} \cdot \left({\left(\frac{D}{d} \cdot \frac{M}{2}\right)}^{2} \cdot h\right)}\\ \mathbf{elif}\;\frac{h}{\ell} \le -2.53200167457589704840317226177229055452 \cdot 10^{-63}:\\ \;\;\;\;\left(w0 \cdot \sqrt{\sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}}\right) \cdot \sqrt{\sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \left(\left(h \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{1}{\ell}\right) \cdot {\left(\left(M \cdot D\right) \cdot \frac{1}{2 \cdot d}\right)}^{\left(\frac{2}{2}\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 -2.282180062770275197908078530250940945557 \cdot 10^{149}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\ell} \cdot \left({\left(\frac{D}{d} \cdot \frac{M}{2}\right)}^{2} \cdot h\right)}\\

\mathbf{elif}\;\frac{h}{\ell} \le -2.53200167457589704840317226177229055452 \cdot 10^{-63}:\\
\;\;\;\;\left(w0 \cdot \sqrt{\sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}}\right) \cdot \sqrt{\sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}}\\

\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left(\left(h \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{1}{\ell}\right) \cdot {\left(\left(M \cdot D\right) \cdot \frac{1}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r5942395 = w0;
        double r5942396 = 1.0;
        double r5942397 = M;
        double r5942398 = D;
        double r5942399 = r5942397 * r5942398;
        double r5942400 = 2.0;
        double r5942401 = d;
        double r5942402 = r5942400 * r5942401;
        double r5942403 = r5942399 / r5942402;
        double r5942404 = pow(r5942403, r5942400);
        double r5942405 = h;
        double r5942406 = l;
        double r5942407 = r5942405 / r5942406;
        double r5942408 = r5942404 * r5942407;
        double r5942409 = r5942396 - r5942408;
        double r5942410 = sqrt(r5942409);
        double r5942411 = r5942395 * r5942410;
        return r5942411;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r5942412 = h;
        double r5942413 = l;
        double r5942414 = r5942412 / r5942413;
        double r5942415 = -2.282180062770275e+149;
        bool r5942416 = r5942414 <= r5942415;
        double r5942417 = w0;
        double r5942418 = 1.0;
        double r5942419 = 1.0;
        double r5942420 = r5942419 / r5942413;
        double r5942421 = D;
        double r5942422 = d;
        double r5942423 = r5942421 / r5942422;
        double r5942424 = M;
        double r5942425 = 2.0;
        double r5942426 = r5942424 / r5942425;
        double r5942427 = r5942423 * r5942426;
        double r5942428 = pow(r5942427, r5942425);
        double r5942429 = r5942428 * r5942412;
        double r5942430 = r5942420 * r5942429;
        double r5942431 = r5942418 - r5942430;
        double r5942432 = sqrt(r5942431);
        double r5942433 = r5942417 * r5942432;
        double r5942434 = -2.532001674575897e-63;
        bool r5942435 = r5942414 <= r5942434;
        double r5942436 = r5942424 * r5942421;
        double r5942437 = r5942425 * r5942422;
        double r5942438 = r5942436 / r5942437;
        double r5942439 = pow(r5942438, r5942425);
        double r5942440 = r5942439 * r5942414;
        double r5942441 = r5942418 - r5942440;
        double r5942442 = sqrt(r5942441);
        double r5942443 = sqrt(r5942442);
        double r5942444 = r5942417 * r5942443;
        double r5942445 = r5942444 * r5942443;
        double r5942446 = 2.0;
        double r5942447 = r5942425 / r5942446;
        double r5942448 = pow(r5942438, r5942447);
        double r5942449 = r5942412 * r5942448;
        double r5942450 = r5942449 * r5942420;
        double r5942451 = r5942419 / r5942437;
        double r5942452 = r5942436 * r5942451;
        double r5942453 = pow(r5942452, r5942447);
        double r5942454 = r5942450 * r5942453;
        double r5942455 = r5942418 - r5942454;
        double r5942456 = sqrt(r5942455);
        double r5942457 = r5942417 * r5942456;
        double r5942458 = r5942435 ? r5942445 : r5942457;
        double r5942459 = r5942416 ? r5942433 : r5942458;
        return r5942459;
}

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) < -2.282180062770275e+149

    1. Initial program 37.0

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

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

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

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

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

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

    if -2.282180062770275e+149 < (/ h l) < -2.532001674575897e-63

    1. Initial program 13.0

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

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

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

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

    if -2.532001674575897e-63 < (/ h l)

    1. Initial program 9.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 div-inv9.6

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

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

      \[\leadsto w0 \cdot \sqrt{1 - \left(\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 h\right) \cdot \frac{1}{\ell}}\]
    7. Applied associate-*l*5.5

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\left({\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 h\right)\right)} \cdot \frac{1}{\ell}}\]
    8. Using strategy rm
    9. Applied associate-*l*4.4

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right) \cdot \frac{1}{\ell}\right)}}\]
    10. Using strategy rm
    11. Applied div-inv4.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{h}{\ell} \le -2.282180062770275197908078530250940945557 \cdot 10^{149}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\ell} \cdot \left({\left(\frac{D}{d} \cdot \frac{M}{2}\right)}^{2} \cdot h\right)}\\ \mathbf{elif}\;\frac{h}{\ell} \le -2.53200167457589704840317226177229055452 \cdot 10^{-63}:\\ \;\;\;\;\left(w0 \cdot \sqrt{\sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}}\right) \cdot \sqrt{\sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \left(\left(h \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{1}{\ell}\right) \cdot {\left(\left(M \cdot D\right) \cdot \frac{1}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019200 
(FPCore (w0 M D h l d)
  :name "Henrywood and Agarwal, Equation (9a)"
  (* w0 (sqrt (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))))))