Average Error: 14.2 → 8.9
Time: 11.5s
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 -3.06029486315833535 \cdot 10^{139}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\ \mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\ \;\;\;\;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}{\ell}\right)}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h\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 -3.06029486315833535 \cdot 10^{139}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}\\

\mathbf{elif}\;\frac{h}{\ell} \le -4.41799484384605494 \cdot 10^{-176}:\\
\;\;\;\;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}{\ell}\right)}\\

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

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r268723 = w0;
        double r268724 = 1.0;
        double r268725 = M;
        double r268726 = D;
        double r268727 = r268725 * r268726;
        double r268728 = 2.0;
        double r268729 = d;
        double r268730 = r268728 * r268729;
        double r268731 = r268727 / r268730;
        double r268732 = pow(r268731, r268728);
        double r268733 = h;
        double r268734 = l;
        double r268735 = r268733 / r268734;
        double r268736 = r268732 * r268735;
        double r268737 = r268724 - r268736;
        double r268738 = sqrt(r268737);
        double r268739 = r268723 * r268738;
        return r268739;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r268740 = h;
        double r268741 = l;
        double r268742 = r268740 / r268741;
        double r268743 = -3.0602948631583354e+139;
        bool r268744 = r268742 <= r268743;
        double r268745 = w0;
        double r268746 = 1.0;
        double r268747 = 1.0;
        double r268748 = M;
        double r268749 = D;
        double r268750 = r268748 * r268749;
        double r268751 = 2.0;
        double r268752 = d;
        double r268753 = r268751 * r268752;
        double r268754 = r268750 / r268753;
        double r268755 = pow(r268754, r268751);
        double r268756 = r268755 * r268740;
        double r268757 = r268741 / r268756;
        double r268758 = r268747 / r268757;
        double r268759 = r268746 - r268758;
        double r268760 = sqrt(r268759);
        double r268761 = r268745 * r268760;
        double r268762 = -4.417994843846055e-176;
        bool r268763 = r268742 <= r268762;
        double r268764 = 2.0;
        double r268765 = r268751 / r268764;
        double r268766 = pow(r268754, r268765);
        double r268767 = r268766 * r268742;
        double r268768 = r268766 * r268767;
        double r268769 = r268746 - r268768;
        double r268770 = sqrt(r268769);
        double r268771 = r268745 * r268770;
        double r268772 = r268753 / r268749;
        double r268773 = r268748 / r268772;
        double r268774 = pow(r268773, r268765);
        double r268775 = r268774 * r268740;
        double r268776 = r268774 * r268775;
        double r268777 = r268741 / r268776;
        double r268778 = r268747 / r268777;
        double r268779 = r268746 - r268778;
        double r268780 = sqrt(r268779);
        double r268781 = r268745 * r268780;
        double r268782 = r268763 ? r268771 : r268781;
        double r268783 = r268744 ? r268761 : r268782;
        return r268783;
}

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) < -3.0602948631583354e+139

    1. Initial program 34.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/19.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 clear-num19.9

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

    if -3.0602948631583354e+139 < (/ h l) < -4.417994843846055e-176

    1. Initial program 14.2

      \[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-pow14.2

      \[\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*12.7

      \[\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)}}\]

    if -4.417994843846055e-176 < (/ 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. Using strategy rm
    3. Applied associate-*r/5.8

      \[\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 clear-num5.8

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

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

      \[\leadsto w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{\color{blue}{\left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot h}}}\]
    10. Applied associate-*l*3.9

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

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

Reproduce

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