Average Error: 13.1 → 8.0
Time: 3.5m
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 -6.618800651430147 \cdot 10^{+226}:\\ \;\;\;\;\sqrt{1 - \frac{\left(\frac{D \cdot M}{2 \cdot d} \cdot h\right) \cdot \left(D \cdot M\right)}{\left(2 \cdot d\right) \cdot \ell}} \cdot w0\\ \mathbf{elif}\;\frac{h}{\ell} \le -9.099471666860626 \cdot 10^{-303}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{D \cdot M}{2 \cdot d} \cdot \left(\frac{h}{\ell} \cdot \frac{D \cdot M}{2 \cdot d}\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 -6.618800651430147 \cdot 10^{+226}:\\
\;\;\;\;\sqrt{1 - \frac{\left(\frac{D \cdot M}{2 \cdot d} \cdot h\right) \cdot \left(D \cdot M\right)}{\left(2 \cdot d\right) \cdot \ell}} \cdot w0\\

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

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

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r47560970 = w0;
        double r47560971 = 1.0;
        double r47560972 = M;
        double r47560973 = D;
        double r47560974 = r47560972 * r47560973;
        double r47560975 = 2.0;
        double r47560976 = d;
        double r47560977 = r47560975 * r47560976;
        double r47560978 = r47560974 / r47560977;
        double r47560979 = pow(r47560978, r47560975);
        double r47560980 = h;
        double r47560981 = l;
        double r47560982 = r47560980 / r47560981;
        double r47560983 = r47560979 * r47560982;
        double r47560984 = r47560971 - r47560983;
        double r47560985 = sqrt(r47560984);
        double r47560986 = r47560970 * r47560985;
        return r47560986;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r47560987 = h;
        double r47560988 = l;
        double r47560989 = r47560987 / r47560988;
        double r47560990 = -6.618800651430147e+226;
        bool r47560991 = r47560989 <= r47560990;
        double r47560992 = 1.0;
        double r47560993 = D;
        double r47560994 = M;
        double r47560995 = r47560993 * r47560994;
        double r47560996 = 2.0;
        double r47560997 = d;
        double r47560998 = r47560996 * r47560997;
        double r47560999 = r47560995 / r47560998;
        double r47561000 = r47560999 * r47560987;
        double r47561001 = r47561000 * r47560995;
        double r47561002 = r47560998 * r47560988;
        double r47561003 = r47561001 / r47561002;
        double r47561004 = r47560992 - r47561003;
        double r47561005 = sqrt(r47561004);
        double r47561006 = w0;
        double r47561007 = r47561005 * r47561006;
        double r47561008 = -9.099471666860626e-303;
        bool r47561009 = r47560989 <= r47561008;
        double r47561010 = r47560989 * r47560999;
        double r47561011 = r47560999 * r47561010;
        double r47561012 = r47560992 - r47561011;
        double r47561013 = sqrt(r47561012);
        double r47561014 = r47561006 * r47561013;
        double r47561015 = r47561009 ? r47561014 : r47561006;
        double r47561016 = r47560991 ? r47561007 : r47561015;
        return r47561016;
}

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) < -6.618800651430147e+226

    1. Initial program 42.3

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

      \[\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-*l/42.7

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

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

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

    if -6.618800651430147e+226 < (/ h l) < -9.099471666860626e-303

    1. Initial program 12.7

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

      \[\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-*l*10.9

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

    if -9.099471666860626e-303 < (/ h l)

    1. Initial program 7.2

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Simplified7.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. Taylor expanded around 0 2.5

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

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

Reproduce

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