Average Error: 14.5 → 10.8
Time: 23.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 -5.16210328038061646251671964536746362143 \cdot 10^{209} \lor \frac{h}{\ell} \le -5.197981195083362506719957051474143391568 \cdot 10^{-284}:\\ \;\;\;\;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 - {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\frac{{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{2} \cdot h}{\ell} \cdot {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)}\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 -5.16210328038061646251671964536746362143 \cdot 10^{209} \lor \frac{h}{\ell} \le -5.197981195083362506719957051474143391568 \cdot 10^{-284}:\\
\;\;\;\;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 - {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\frac{{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{2} \cdot h}{\ell} \cdot {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)}\right)}\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r140457 = w0;
        double r140458 = 1.0;
        double r140459 = M;
        double r140460 = D;
        double r140461 = r140459 * r140460;
        double r140462 = 2.0;
        double r140463 = d;
        double r140464 = r140462 * r140463;
        double r140465 = r140461 / r140464;
        double r140466 = pow(r140465, r140462);
        double r140467 = h;
        double r140468 = l;
        double r140469 = r140467 / r140468;
        double r140470 = r140466 * r140469;
        double r140471 = r140458 - r140470;
        double r140472 = sqrt(r140471);
        double r140473 = r140457 * r140472;
        return r140473;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r140474 = h;
        double r140475 = l;
        double r140476 = r140474 / r140475;
        double r140477 = -5.1621032803806165e+209;
        bool r140478 = r140476 <= r140477;
        double r140479 = -5.1979811950833625e-284;
        bool r140480 = r140476 <= r140479;
        bool r140481 = r140478 || r140480;
        double r140482 = w0;
        double r140483 = 1.0;
        double r140484 = M;
        double r140485 = D;
        double r140486 = r140484 * r140485;
        double r140487 = 2.0;
        double r140488 = d;
        double r140489 = r140487 * r140488;
        double r140490 = r140486 / r140489;
        double r140491 = 2.0;
        double r140492 = r140487 / r140491;
        double r140493 = pow(r140490, r140492);
        double r140494 = r140493 * r140476;
        double r140495 = r140493 * r140494;
        double r140496 = r140483 - r140495;
        double r140497 = sqrt(r140496);
        double r140498 = r140482 * r140497;
        double r140499 = cbrt(r140490);
        double r140500 = r140499 * r140499;
        double r140501 = pow(r140500, r140492);
        double r140502 = pow(r140499, r140487);
        double r140503 = r140502 * r140474;
        double r140504 = r140503 / r140475;
        double r140505 = r140504 * r140501;
        double r140506 = r140501 * r140505;
        double r140507 = r140483 - r140506;
        double r140508 = sqrt(r140507);
        double r140509 = r140482 * r140508;
        double r140510 = r140481 ? r140498 : r140509;
        return r140510;
}

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) < -5.1621032803806165e+209

    1. Initial program 42.7

      \[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-inv42.7

      \[\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*22.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 add-cube-cbrt22.3

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

    if -5.1621032803806165e+209 < (/ h l) < -5.1979811950833625e-284

    1. Initial program 14.3

      \[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.3

      \[\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.2

      \[\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 -5.1979811950833625e-284 < (/ h l)

    1. Initial program 8.3

      \[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-inv8.3

      \[\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*4.6

      \[\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 add-cube-cbrt4.6

      \[\leadsto w0 \cdot \sqrt{1 - \left({\color{blue}{\left(\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right) \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}}^{2} \cdot h\right) \cdot \frac{1}{\ell}}\]
    7. Applied unpow-prod-down4.6

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{h}{\ell} \le -5.16210328038061646251671964536746362143 \cdot 10^{209} \lor \frac{h}{\ell} \le -5.197981195083362506719957051474143391568 \cdot 10^{-284}:\\ \;\;\;\;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 - {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\frac{{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{2} \cdot h}{\ell} \cdot {\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}^{\left(\frac{2}{2}\right)}\right)}\\ \end{array}\]

Reproduce

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