Average Error: 14.6 → 10.7
Time: 11.3s
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}\;2 \cdot d \le -4.9978883920778511 \cdot 10^{159}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{2} \cdot \frac{h}{\ell}}\\ \mathbf{elif}\;2 \cdot d \le -8.4818635748686101 \cdot 10^{-74}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(0.5 \cdot \left(\frac{h \cdot \left(M \cdot D\right)}{d \cdot \ell} \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\left(\sqrt[3]{h} \cdot \left(\sqrt[3]{h} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \frac{\sqrt[3]{h}}{\ell}\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}\;2 \cdot d \le -4.9978883920778511 \cdot 10^{159}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{2} \cdot \frac{h}{\ell}}\\

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

\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\left(\sqrt[3]{h} \cdot \left(\sqrt[3]{h} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \frac{\sqrt[3]{h}}{\ell}\right)}\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r163835 = w0;
        double r163836 = 1.0;
        double r163837 = M;
        double r163838 = D;
        double r163839 = r163837 * r163838;
        double r163840 = 2.0;
        double r163841 = d;
        double r163842 = r163840 * r163841;
        double r163843 = r163839 / r163842;
        double r163844 = pow(r163843, r163840);
        double r163845 = h;
        double r163846 = l;
        double r163847 = r163845 / r163846;
        double r163848 = r163844 * r163847;
        double r163849 = r163836 - r163848;
        double r163850 = sqrt(r163849);
        double r163851 = r163835 * r163850;
        return r163851;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r163852 = 2.0;
        double r163853 = d;
        double r163854 = r163852 * r163853;
        double r163855 = -4.997888392077851e+159;
        bool r163856 = r163854 <= r163855;
        double r163857 = w0;
        double r163858 = 1.0;
        double r163859 = M;
        double r163860 = r163859 / r163852;
        double r163861 = D;
        double r163862 = r163861 / r163853;
        double r163863 = r163860 * r163862;
        double r163864 = pow(r163863, r163852);
        double r163865 = h;
        double r163866 = l;
        double r163867 = r163865 / r163866;
        double r163868 = r163864 * r163867;
        double r163869 = r163858 - r163868;
        double r163870 = sqrt(r163869);
        double r163871 = r163857 * r163870;
        double r163872 = -8.48186357486861e-74;
        bool r163873 = r163854 <= r163872;
        double r163874 = r163859 * r163861;
        double r163875 = r163874 / r163854;
        double r163876 = 2.0;
        double r163877 = r163852 / r163876;
        double r163878 = pow(r163875, r163877);
        double r163879 = 0.5;
        double r163880 = r163865 * r163874;
        double r163881 = r163853 * r163866;
        double r163882 = r163880 / r163881;
        double r163883 = 1.0;
        double r163884 = -1.0;
        double r163885 = pow(r163884, r163852);
        double r163886 = r163883 / r163885;
        double r163887 = pow(r163886, r163858);
        double r163888 = r163882 * r163887;
        double r163889 = r163879 * r163888;
        double r163890 = r163878 * r163889;
        double r163891 = r163858 - r163890;
        double r163892 = sqrt(r163891);
        double r163893 = r163857 * r163892;
        double r163894 = cbrt(r163865);
        double r163895 = r163894 * r163878;
        double r163896 = r163894 * r163895;
        double r163897 = r163894 / r163866;
        double r163898 = r163896 * r163897;
        double r163899 = r163878 * r163898;
        double r163900 = r163858 - r163899;
        double r163901 = sqrt(r163900);
        double r163902 = r163857 * r163901;
        double r163903 = r163873 ? r163893 : r163902;
        double r163904 = r163856 ? r163871 : r163903;
        return r163904;
}

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 (* 2.0 d) < -4.997888392077851e+159

    1. Initial program 10.5

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Using strategy rm
    3. Applied times-frac8.9

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

    if -4.997888392077851e+159 < (* 2.0 d) < -8.48186357486861e-74

    1. Initial program 12.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-pow12.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*10.9

      \[\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)}}\]
    5. Taylor expanded around -inf 8.6

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

    if -8.48186357486861e-74 < (* 2.0 d)

    1. Initial program 16.5

      \[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-pow16.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(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \frac{h}{\ell}}\]
    4. Applied associate-*l*14.6

      \[\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)}}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity14.6

      \[\leadsto 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}{\color{blue}{1 \cdot \ell}}\right)}\]
    7. Applied add-cube-cbrt14.6

      \[\leadsto 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{\color{blue}{\left(\sqrt[3]{h} \cdot \sqrt[3]{h}\right) \cdot \sqrt[3]{h}}}{1 \cdot \ell}\right)}\]
    8. Applied times-frac14.6

      \[\leadsto 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 \color{blue}{\left(\frac{\sqrt[3]{h} \cdot \sqrt[3]{h}}{1} \cdot \frac{\sqrt[3]{h}}{\ell}\right)}\right)}\]
    9. Applied associate-*r*11.8

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;2 \cdot d \le -4.9978883920778511 \cdot 10^{159}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{2} \cdot \frac{h}{\ell}}\\ \mathbf{elif}\;2 \cdot d \le -8.4818635748686101 \cdot 10^{-74}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(0.5 \cdot \left(\frac{h \cdot \left(M \cdot D\right)}{d \cdot \ell} \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(\left(\sqrt[3]{h} \cdot \left(\sqrt[3]{h} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \frac{\sqrt[3]{h}}{\ell}\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020036 +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))))))