Average Error: 14.2 → 8.8
Time: 12.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}\;\ell \le -6.87360346340748126 \cdot 10^{-86}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\frac{\ell}{h}}}\\ \mathbf{elif}\;\ell \le 2.11094907956916753 \cdot 10^{-203}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot h}{\ell}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\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)}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}\\ \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}\;\ell \le -6.87360346340748126 \cdot 10^{-86}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\frac{\ell}{h}}}\\

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

\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\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)}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r205845 = w0;
        double r205846 = 1.0;
        double r205847 = M;
        double r205848 = D;
        double r205849 = r205847 * r205848;
        double r205850 = 2.0;
        double r205851 = d;
        double r205852 = r205850 * r205851;
        double r205853 = r205849 / r205852;
        double r205854 = pow(r205853, r205850);
        double r205855 = h;
        double r205856 = l;
        double r205857 = r205855 / r205856;
        double r205858 = r205854 * r205857;
        double r205859 = r205846 - r205858;
        double r205860 = sqrt(r205859);
        double r205861 = r205845 * r205860;
        return r205861;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r205862 = l;
        double r205863 = -6.873603463407481e-86;
        bool r205864 = r205862 <= r205863;
        double r205865 = w0;
        double r205866 = 1.0;
        double r205867 = M;
        double r205868 = D;
        double r205869 = r205867 * r205868;
        double r205870 = 2.0;
        double r205871 = d;
        double r205872 = r205870 * r205871;
        double r205873 = r205869 / r205872;
        double r205874 = 2.0;
        double r205875 = r205870 / r205874;
        double r205876 = pow(r205873, r205875);
        double r205877 = h;
        double r205878 = r205862 / r205877;
        double r205879 = r205876 / r205878;
        double r205880 = r205876 * r205879;
        double r205881 = r205866 - r205880;
        double r205882 = sqrt(r205881);
        double r205883 = r205865 * r205882;
        double r205884 = 2.1109490795691675e-203;
        bool r205885 = r205862 <= r205884;
        double r205886 = r205872 / r205868;
        double r205887 = r205867 / r205886;
        double r205888 = pow(r205887, r205870);
        double r205889 = r205888 * r205877;
        double r205890 = r205889 / r205862;
        double r205891 = r205866 - r205890;
        double r205892 = sqrt(r205891);
        double r205893 = r205865 * r205892;
        double r205894 = cbrt(r205873);
        double r205895 = r205894 * r205894;
        double r205896 = r205895 * r205894;
        double r205897 = pow(r205896, r205875);
        double r205898 = r205897 * r205877;
        double r205899 = r205898 / r205862;
        double r205900 = r205876 * r205899;
        double r205901 = r205866 - r205900;
        double r205902 = sqrt(r205901);
        double r205903 = r205865 * r205902;
        double r205904 = r205885 ? r205893 : r205903;
        double r205905 = r205864 ? r205883 : r205904;
        return r205905;
}

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 l < -6.873603463407481e-86

    1. Initial program 9.9

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

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

      \[\leadsto w0 \cdot \sqrt{1 - \frac{\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}{\ell}}\]
    6. Applied associate-*l*8.2

      \[\leadsto w0 \cdot \sqrt{1 - \frac{\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 h\right)}}{\ell}}\]
    7. Using strategy rm
    8. Applied *-un-lft-identity8.2

      \[\leadsto w0 \cdot \sqrt{1 - \frac{{\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)}{\color{blue}{1 \cdot \ell}}}\]
    9. Applied times-frac7.0

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

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

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

    if -6.873603463407481e-86 < l < 2.1109490795691675e-203

    1. Initial program 24.9

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

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

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

    if 2.1109490795691675e-203 < l

    1. Initial program 12.4

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

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

      \[\leadsto w0 \cdot \sqrt{1 - \frac{\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}{\ell}}\]
    6. Applied associate-*l*8.8

      \[\leadsto w0 \cdot \sqrt{1 - \frac{\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 h\right)}}{\ell}}\]
    7. Using strategy rm
    8. Applied *-un-lft-identity8.8

      \[\leadsto w0 \cdot \sqrt{1 - \frac{{\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)}{\color{blue}{1 \cdot \ell}}}\]
    9. Applied times-frac8.0

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

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

      \[\leadsto w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\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)}}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification8.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \le -6.87360346340748126 \cdot 10^{-86}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\frac{\ell}{h}}}\\ \mathbf{elif}\;\ell \le 2.11094907956916753 \cdot 10^{-203}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot h}{\ell}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{{\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)}^{\left(\frac{2}{2}\right)} \cdot h}{\ell}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020089 +o rules:numerics
(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))))))