Average Error: 14.2 → 8.8
Time: 12.0s
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 r160565 = w0;
        double r160566 = 1.0;
        double r160567 = M;
        double r160568 = D;
        double r160569 = r160567 * r160568;
        double r160570 = 2.0;
        double r160571 = d;
        double r160572 = r160570 * r160571;
        double r160573 = r160569 / r160572;
        double r160574 = pow(r160573, r160570);
        double r160575 = h;
        double r160576 = l;
        double r160577 = r160575 / r160576;
        double r160578 = r160574 * r160577;
        double r160579 = r160566 - r160578;
        double r160580 = sqrt(r160579);
        double r160581 = r160565 * r160580;
        return r160581;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r160582 = l;
        double r160583 = -6.873603463407481e-86;
        bool r160584 = r160582 <= r160583;
        double r160585 = w0;
        double r160586 = 1.0;
        double r160587 = M;
        double r160588 = D;
        double r160589 = r160587 * r160588;
        double r160590 = 2.0;
        double r160591 = d;
        double r160592 = r160590 * r160591;
        double r160593 = r160589 / r160592;
        double r160594 = 2.0;
        double r160595 = r160590 / r160594;
        double r160596 = pow(r160593, r160595);
        double r160597 = h;
        double r160598 = r160582 / r160597;
        double r160599 = r160596 / r160598;
        double r160600 = r160596 * r160599;
        double r160601 = r160586 - r160600;
        double r160602 = sqrt(r160601);
        double r160603 = r160585 * r160602;
        double r160604 = 2.1109490795691675e-203;
        bool r160605 = r160582 <= r160604;
        double r160606 = r160592 / r160588;
        double r160607 = r160587 / r160606;
        double r160608 = pow(r160607, r160590);
        double r160609 = r160608 * r160597;
        double r160610 = r160609 / r160582;
        double r160611 = r160586 - r160610;
        double r160612 = sqrt(r160611);
        double r160613 = r160585 * r160612;
        double r160614 = cbrt(r160593);
        double r160615 = r160614 * r160614;
        double r160616 = r160615 * r160614;
        double r160617 = pow(r160616, r160595);
        double r160618 = r160617 * r160597;
        double r160619 = r160618 / r160582;
        double r160620 = r160596 * r160619;
        double r160621 = r160586 - r160620;
        double r160622 = sqrt(r160621);
        double r160623 = r160585 * r160622;
        double r160624 = r160605 ? r160613 : r160623;
        double r160625 = r160584 ? r160603 : r160624;
        return r160625;
}

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 
(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))))))