Average Error: 14.3 → 8.9
Time: 3.3m
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{M \cdot D}{2 \cdot d} \le -1.641307001890876877764859089871069314969 \cdot 10^{106}:\\ \;\;\;\;\mathsf{hypot}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}}, \sqrt{1}\right) \cdot w0\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le -2.400424800434625566480183780927380456868 \cdot 10^{-106}:\\ \;\;\;\;\left(\sqrt[3]{\sqrt{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}} \cdot \sqrt[3]{\sqrt{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}}\right) \cdot \left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\ell}, -h, 1\right)}} \cdot w0\right)\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 6.742814395308295523802265392271778001732 \cdot 10^{-243}:\\ \;\;\;\;w0 \cdot \sqrt{1}\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 8.330468902335569604940997588223018461521 \cdot 10^{146}:\\ \;\;\;\;\sqrt{\sqrt[3]{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}} \cdot \sqrt[3]{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}} \cdot \left(\sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\ell}, -h, 1\right)}} \cdot w0\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}}, \sqrt{1}\right) \cdot 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{M \cdot D}{2 \cdot d} \le -1.641307001890876877764859089871069314969 \cdot 10^{106}:\\
\;\;\;\;\mathsf{hypot}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}}, \sqrt{1}\right) \cdot w0\\

\mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le -2.400424800434625566480183780927380456868 \cdot 10^{-106}:\\
\;\;\;\;\left(\sqrt[3]{\sqrt{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}} \cdot \sqrt[3]{\sqrt{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}}\right) \cdot \left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\ell}, -h, 1\right)}} \cdot w0\right)\\

\mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 6.742814395308295523802265392271778001732 \cdot 10^{-243}:\\
\;\;\;\;w0 \cdot \sqrt{1}\\

\mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 8.330468902335569604940997588223018461521 \cdot 10^{146}:\\
\;\;\;\;\sqrt{\sqrt[3]{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}} \cdot \sqrt[3]{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}} \cdot \left(\sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\ell}, -h, 1\right)}} \cdot w0\right)\\

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

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r540760 = w0;
        double r540761 = 1.0;
        double r540762 = M;
        double r540763 = D;
        double r540764 = r540762 * r540763;
        double r540765 = 2.0;
        double r540766 = d;
        double r540767 = r540765 * r540766;
        double r540768 = r540764 / r540767;
        double r540769 = pow(r540768, r540765);
        double r540770 = h;
        double r540771 = l;
        double r540772 = r540770 / r540771;
        double r540773 = r540769 * r540772;
        double r540774 = r540761 - r540773;
        double r540775 = sqrt(r540774);
        double r540776 = r540760 * r540775;
        return r540776;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r540777 = M;
        double r540778 = D;
        double r540779 = r540777 * r540778;
        double r540780 = 2.0;
        double r540781 = d;
        double r540782 = r540780 * r540781;
        double r540783 = r540779 / r540782;
        double r540784 = -1.6413070018908769e+106;
        bool r540785 = r540783 <= r540784;
        double r540786 = 2.0;
        double r540787 = r540780 / r540786;
        double r540788 = pow(r540783, r540787);
        double r540789 = l;
        double r540790 = h;
        double r540791 = -r540790;
        double r540792 = r540789 / r540791;
        double r540793 = sqrt(r540792);
        double r540794 = r540788 / r540793;
        double r540795 = 1.0;
        double r540796 = sqrt(r540795);
        double r540797 = hypot(r540794, r540796);
        double r540798 = w0;
        double r540799 = r540797 * r540798;
        double r540800 = -2.4004248004346256e-106;
        bool r540801 = r540783 <= r540800;
        double r540802 = pow(r540783, r540780);
        double r540803 = r540802 / r540792;
        double r540804 = r540795 + r540803;
        double r540805 = sqrt(r540804);
        double r540806 = cbrt(r540805);
        double r540807 = r540806 * r540806;
        double r540808 = r540802 / r540789;
        double r540809 = fma(r540808, r540791, r540795);
        double r540810 = sqrt(r540809);
        double r540811 = cbrt(r540810);
        double r540812 = r540811 * r540798;
        double r540813 = r540807 * r540812;
        double r540814 = 6.742814395308296e-243;
        bool r540815 = r540783 <= r540814;
        double r540816 = r540798 * r540796;
        double r540817 = 8.33046890233557e+146;
        bool r540818 = r540783 <= r540817;
        double r540819 = cbrt(r540804);
        double r540820 = r540819 * r540819;
        double r540821 = sqrt(r540820);
        double r540822 = cbrt(r540809);
        double r540823 = sqrt(r540822);
        double r540824 = r540823 * r540798;
        double r540825 = r540821 * r540824;
        double r540826 = r540818 ? r540825 : r540799;
        double r540827 = r540815 ? r540816 : r540826;
        double r540828 = r540801 ? r540813 : r540827;
        double r540829 = r540785 ? r540799 : r540828;
        return r540829;
}

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

Derivation

  1. Split input into 4 regimes
  2. if (/ (* M D) (* 2.0 d)) < -1.6413070018908769e+106 or 8.33046890233557e+146 < (/ (* M D) (* 2.0 d))

    1. Initial program 57.7

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

      \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}, \frac{-h}{\ell}, 1\right)} \cdot w0}\]
    3. Using strategy rm
    4. Applied fma-udef57.7

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

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

      \[\leadsto \sqrt{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}} + \color{blue}{\sqrt{1} \cdot \sqrt{1}}} \cdot w0\]
    8. Applied add-sqr-sqrt59.9

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

      \[\leadsto \sqrt{\frac{\color{blue}{{\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)}}}{\sqrt{\frac{\ell}{-h}} \cdot \sqrt{\frac{\ell}{-h}}} + \sqrt{1} \cdot \sqrt{1}} \cdot w0\]
    10. Applied times-frac51.6

      \[\leadsto \sqrt{\color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}}} + \sqrt{1} \cdot \sqrt{1}} \cdot w0\]
    11. Applied hypot-def38.7

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

    if -1.6413070018908769e+106 < (/ (* M D) (* 2.0 d)) < -2.4004248004346256e-106

    1. Initial program 6.3

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

      \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}, \frac{-h}{\ell}, 1\right)} \cdot w0}\]
    3. Using strategy rm
    4. Applied fma-udef6.3

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

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

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

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

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

    if -2.4004248004346256e-106 < (/ (* M D) (* 2.0 d)) < 6.742814395308296e-243

    1. Initial program 7.0

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

      \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}, \frac{-h}{\ell}, 1\right)} \cdot w0}\]
    3. Using strategy rm
    4. Applied fma-udef7.0

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

      \[\leadsto \sqrt{\color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}} + 1} \cdot w0\]
    6. Taylor expanded around 0 1.0

      \[\leadsto \color{blue}{\sqrt{1}} \cdot w0\]

    if 6.742814395308296e-243 < (/ (* M D) (* 2.0 d)) < 8.33046890233557e+146

    1. Initial program 5.6

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

      \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}, \frac{-h}{\ell}, 1\right)} \cdot w0}\]
    3. Using strategy rm
    4. Applied fma-udef5.6

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{M \cdot D}{2 \cdot d} \le -1.641307001890876877764859089871069314969 \cdot 10^{106}:\\ \;\;\;\;\mathsf{hypot}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}}, \sqrt{1}\right) \cdot w0\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le -2.400424800434625566480183780927380456868 \cdot 10^{-106}:\\ \;\;\;\;\left(\sqrt[3]{\sqrt{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}} \cdot \sqrt[3]{\sqrt{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}}\right) \cdot \left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\ell}, -h, 1\right)}} \cdot w0\right)\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 6.742814395308295523802265392271778001732 \cdot 10^{-243}:\\ \;\;\;\;w0 \cdot \sqrt{1}\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 8.330468902335569604940997588223018461521 \cdot 10^{146}:\\ \;\;\;\;\sqrt{\sqrt[3]{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}} \cdot \sqrt[3]{1 + \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{-h}}}} \cdot \left(\sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\ell}, -h, 1\right)}} \cdot w0\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left(\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt{\frac{\ell}{-h}}}, \sqrt{1}\right) \cdot w0\\ \end{array}\]

Reproduce

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