Average Error: 14.1 → 8.5
Time: 53.1s
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 r5314851 = w0;
        double r5314852 = 1.0;
        double r5314853 = M;
        double r5314854 = D;
        double r5314855 = r5314853 * r5314854;
        double r5314856 = 2.0;
        double r5314857 = d;
        double r5314858 = r5314856 * r5314857;
        double r5314859 = r5314855 / r5314858;
        double r5314860 = pow(r5314859, r5314856);
        double r5314861 = h;
        double r5314862 = l;
        double r5314863 = r5314861 / r5314862;
        double r5314864 = r5314860 * r5314863;
        double r5314865 = r5314852 - r5314864;
        double r5314866 = sqrt(r5314865);
        double r5314867 = r5314851 * r5314866;
        return r5314867;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r5314868 = h;
        double r5314869 = l;
        double r5314870 = r5314868 / r5314869;
        double r5314871 = -2.282180062770275e+149;
        bool r5314872 = r5314870 <= r5314871;
        double r5314873 = w0;
        double r5314874 = 1.0;
        double r5314875 = 1.0;
        double r5314876 = r5314875 / r5314869;
        double r5314877 = M;
        double r5314878 = 2.0;
        double r5314879 = r5314877 / r5314878;
        double r5314880 = D;
        double r5314881 = d;
        double r5314882 = r5314880 / r5314881;
        double r5314883 = r5314879 * r5314882;
        double r5314884 = pow(r5314883, r5314878);
        double r5314885 = r5314884 * r5314868;
        double r5314886 = r5314876 * r5314885;
        double r5314887 = r5314874 - r5314886;
        double r5314888 = sqrt(r5314887);
        double r5314889 = r5314873 * r5314888;
        double r5314890 = -2.532001674575897e-63;
        bool r5314891 = r5314870 <= r5314890;
        double r5314892 = r5314880 * r5314877;
        double r5314893 = r5314881 * r5314878;
        double r5314894 = r5314892 / r5314893;
        double r5314895 = pow(r5314894, r5314878);
        double r5314896 = r5314895 * r5314870;
        double r5314897 = r5314874 - r5314896;
        double r5314898 = sqrt(r5314897);
        double r5314899 = sqrt(r5314898);
        double r5314900 = r5314873 * r5314899;
        double r5314901 = r5314900 * r5314899;
        double r5314902 = 2.0;
        double r5314903 = r5314878 / r5314902;
        double r5314904 = pow(r5314894, r5314903);
        double r5314905 = r5314868 * r5314904;
        double r5314906 = r5314905 * r5314876;
        double r5314907 = r5314875 / r5314893;
        double r5314908 = r5314892 * r5314907;
        double r5314909 = pow(r5314908, r5314903);
        double r5314910 = r5314906 * r5314909;
        double r5314911 = r5314874 - r5314910;
        double r5314912 = sqrt(r5314911);
        double r5314913 = r5314873 * r5314912;
        double r5314914 = r5314891 ? r5314901 : r5314913;
        double r5314915 = r5314872 ? r5314889 : r5314914;
        return r5314915;
}

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 +o rules:numerics
(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))))))