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

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

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

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r5942512 = w0;
        double r5942513 = 1.0;
        double r5942514 = M;
        double r5942515 = D;
        double r5942516 = r5942514 * r5942515;
        double r5942517 = 2.0;
        double r5942518 = d;
        double r5942519 = r5942517 * r5942518;
        double r5942520 = r5942516 / r5942519;
        double r5942521 = pow(r5942520, r5942517);
        double r5942522 = h;
        double r5942523 = l;
        double r5942524 = r5942522 / r5942523;
        double r5942525 = r5942521 * r5942524;
        double r5942526 = r5942513 - r5942525;
        double r5942527 = sqrt(r5942526);
        double r5942528 = r5942512 * r5942527;
        return r5942528;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r5942529 = h;
        double r5942530 = l;
        double r5942531 = r5942529 / r5942530;
        double r5942532 = -2.282180062770275e+149;
        bool r5942533 = r5942531 <= r5942532;
        double r5942534 = w0;
        double r5942535 = 1.0;
        double r5942536 = 1.0;
        double r5942537 = r5942536 / r5942530;
        double r5942538 = M;
        double r5942539 = 2.0;
        double r5942540 = r5942538 / r5942539;
        double r5942541 = D;
        double r5942542 = d;
        double r5942543 = r5942541 / r5942542;
        double r5942544 = r5942540 * r5942543;
        double r5942545 = pow(r5942544, r5942539);
        double r5942546 = r5942545 * r5942529;
        double r5942547 = r5942537 * r5942546;
        double r5942548 = r5942535 - r5942547;
        double r5942549 = sqrt(r5942548);
        double r5942550 = r5942534 * r5942549;
        double r5942551 = -2.532001674575897e-63;
        bool r5942552 = r5942531 <= r5942551;
        double r5942553 = r5942541 * r5942538;
        double r5942554 = r5942542 * r5942539;
        double r5942555 = r5942553 / r5942554;
        double r5942556 = pow(r5942555, r5942539);
        double r5942557 = r5942556 * r5942531;
        double r5942558 = r5942535 - r5942557;
        double r5942559 = sqrt(r5942558);
        double r5942560 = sqrt(r5942559);
        double r5942561 = r5942534 * r5942560;
        double r5942562 = r5942561 * r5942560;
        double r5942563 = 2.0;
        double r5942564 = r5942539 / r5942563;
        double r5942565 = pow(r5942555, r5942564);
        double r5942566 = r5942529 * r5942565;
        double r5942567 = r5942566 * r5942537;
        double r5942568 = r5942536 / r5942554;
        double r5942569 = r5942553 * r5942568;
        double r5942570 = pow(r5942569, r5942564);
        double r5942571 = r5942567 * r5942570;
        double r5942572 = r5942535 - r5942571;
        double r5942573 = sqrt(r5942572);
        double r5942574 = r5942534 * r5942573;
        double r5942575 = r5942552 ? r5942562 : r5942574;
        double r5942576 = r5942533 ? r5942550 : r5942575;
        return r5942576;
}

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 times-frac21.9

      \[\leadsto w0 \cdot \sqrt{1 - \left({\color{blue}{\left(\frac{M}{2} \cdot \frac{D}{d}\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{M}{2} \cdot \frac{D}{d}\right)}^{2} \cdot h\right)}\\ \mathbf{elif}\;\frac{h}{\ell} \le -2.53200167457589704840317226177229055452 \cdot 10^{-63}:\\ \;\;\;\;\left(w0 \cdot \sqrt{\sqrt{1 - {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2} \cdot \frac{h}{\ell}}}\right) \cdot \sqrt{\sqrt{1 - {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2} \cdot \frac{h}{\ell}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \left(\left(h \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{1}{\ell}\right) \cdot {\left(\left(D \cdot M\right) \cdot \frac{1}{d \cdot 2}\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))))))