Average Error: 13.6 → 9.2
Time: 3.9m
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.267407641527363 \cdot 10^{+244}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{h \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \sqrt[3]{\left(\left(\frac{D}{2 \cdot d} \cdot M\right) \cdot \left(\frac{D}{2 \cdot d} \cdot M\right)\right) \cdot \left(\frac{D}{2 \cdot d} \cdot M\right)}\right)}{\ell}}\\ \mathbf{elif}\;\frac{h}{\ell} \le -4.510018172937262 \cdot 10^{-251}:\\ \;\;\;\;w0 \cdot \left(\sqrt{\sqrt{1 - \frac{h}{\ell} \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \frac{D \cdot M}{2 \cdot d}\right)}} \cdot \sqrt{\sqrt{1 - \frac{h}{\ell} \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \frac{D \cdot M}{2 \cdot d}\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;w0\\ \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.267407641527363 \cdot 10^{+244}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{h \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \sqrt[3]{\left(\left(\frac{D}{2 \cdot d} \cdot M\right) \cdot \left(\frac{D}{2 \cdot d} \cdot M\right)\right) \cdot \left(\frac{D}{2 \cdot d} \cdot M\right)}\right)}{\ell}}\\

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

\mathbf{else}:\\
\;\;\;\;w0\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r56731688 = w0;
        double r56731689 = 1.0;
        double r56731690 = M;
        double r56731691 = D;
        double r56731692 = r56731690 * r56731691;
        double r56731693 = 2.0;
        double r56731694 = d;
        double r56731695 = r56731693 * r56731694;
        double r56731696 = r56731692 / r56731695;
        double r56731697 = pow(r56731696, r56731693);
        double r56731698 = h;
        double r56731699 = l;
        double r56731700 = r56731698 / r56731699;
        double r56731701 = r56731697 * r56731700;
        double r56731702 = r56731689 - r56731701;
        double r56731703 = sqrt(r56731702);
        double r56731704 = r56731688 * r56731703;
        return r56731704;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r56731705 = h;
        double r56731706 = l;
        double r56731707 = r56731705 / r56731706;
        double r56731708 = -2.267407641527363e+244;
        bool r56731709 = r56731707 <= r56731708;
        double r56731710 = w0;
        double r56731711 = 1.0;
        double r56731712 = D;
        double r56731713 = M;
        double r56731714 = r56731712 * r56731713;
        double r56731715 = 2.0;
        double r56731716 = d;
        double r56731717 = r56731715 * r56731716;
        double r56731718 = r56731714 / r56731717;
        double r56731719 = r56731712 / r56731717;
        double r56731720 = r56731719 * r56731713;
        double r56731721 = r56731720 * r56731720;
        double r56731722 = r56731721 * r56731720;
        double r56731723 = cbrt(r56731722);
        double r56731724 = r56731718 * r56731723;
        double r56731725 = r56731705 * r56731724;
        double r56731726 = r56731725 / r56731706;
        double r56731727 = r56731711 - r56731726;
        double r56731728 = sqrt(r56731727);
        double r56731729 = r56731710 * r56731728;
        double r56731730 = -4.510018172937262e-251;
        bool r56731731 = r56731707 <= r56731730;
        double r56731732 = r56731718 * r56731718;
        double r56731733 = r56731707 * r56731732;
        double r56731734 = r56731711 - r56731733;
        double r56731735 = sqrt(r56731734);
        double r56731736 = sqrt(r56731735);
        double r56731737 = r56731736 * r56731736;
        double r56731738 = r56731710 * r56731737;
        double r56731739 = r56731731 ? r56731738 : r56731710;
        double r56731740 = r56731709 ? r56731729 : r56731739;
        return r56731740;
}

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.267407641527363e+244

    1. Initial program 47.6

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Simplified47.6

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

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

      \[\leadsto \sqrt{1 - \frac{\left(\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{\color{blue}{\sqrt[3]{\left(\left(2 \cdot d\right) \cdot \left(2 \cdot d\right)\right) \cdot \left(2 \cdot d\right)}}}\right) \cdot h}{\ell}} \cdot w0\]
    7. Applied add-cbrt-cube32.9

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

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

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

    if -2.267407641527363e+244 < (/ h l) < -4.510018172937262e-251

    1. Initial program 12.2

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

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

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

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

    if -4.510018172937262e-251 < (/ 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. Simplified8.6

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

      \[\leadsto \sqrt{1 - \color{blue}{\frac{\left(\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}\right) \cdot h}{\ell}}} \cdot w0\]
    5. Taylor expanded around 0 3.6

      \[\leadsto \color{blue}{1} \cdot w0\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{h}{\ell} \le -2.267407641527363 \cdot 10^{+244}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{h \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \sqrt[3]{\left(\left(\frac{D}{2 \cdot d} \cdot M\right) \cdot \left(\frac{D}{2 \cdot d} \cdot M\right)\right) \cdot \left(\frac{D}{2 \cdot d} \cdot M\right)}\right)}{\ell}}\\ \mathbf{elif}\;\frac{h}{\ell} \le -4.510018172937262 \cdot 10^{-251}:\\ \;\;\;\;w0 \cdot \left(\sqrt{\sqrt{1 - \frac{h}{\ell} \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \frac{D \cdot M}{2 \cdot d}\right)}} \cdot \sqrt{\sqrt{1 - \frac{h}{\ell} \cdot \left(\frac{D \cdot M}{2 \cdot d} \cdot \frac{D \cdot M}{2 \cdot d}\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;w0\\ \end{array}\]

Reproduce

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