Average Error: 14.1 → 7.7
Time: 40.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}\;{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \le 6.11081507052817196513612330776120330556 \cdot 10^{105}:\\ \;\;\;\;\sqrt{1 + \left(h \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{-{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\ell}} \cdot w0\\ \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}\;{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \le 6.11081507052817196513612330776120330556 \cdot 10^{105}:\\
\;\;\;\;\sqrt{1 + \left(h \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{-{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\ell}} \cdot w0\\

\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 r165572 = w0;
        double r165573 = 1.0;
        double r165574 = M;
        double r165575 = D;
        double r165576 = r165574 * r165575;
        double r165577 = 2.0;
        double r165578 = d;
        double r165579 = r165577 * r165578;
        double r165580 = r165576 / r165579;
        double r165581 = pow(r165580, r165577);
        double r165582 = h;
        double r165583 = l;
        double r165584 = r165582 / r165583;
        double r165585 = r165581 * r165584;
        double r165586 = r165573 - r165585;
        double r165587 = sqrt(r165586);
        double r165588 = r165572 * r165587;
        return r165588;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r165589 = M;
        double r165590 = D;
        double r165591 = r165589 * r165590;
        double r165592 = 2.0;
        double r165593 = d;
        double r165594 = r165592 * r165593;
        double r165595 = r165591 / r165594;
        double r165596 = pow(r165595, r165592);
        double r165597 = 6.110815070528172e+105;
        bool r165598 = r165596 <= r165597;
        double r165599 = 1.0;
        double r165600 = h;
        double r165601 = 2.0;
        double r165602 = r165592 / r165601;
        double r165603 = pow(r165595, r165602);
        double r165604 = r165600 * r165603;
        double r165605 = -r165603;
        double r165606 = l;
        double r165607 = r165605 / r165606;
        double r165608 = r165604 * r165607;
        double r165609 = r165599 + r165608;
        double r165610 = sqrt(r165609);
        double r165611 = w0;
        double r165612 = r165610 * r165611;
        double r165613 = -r165600;
        double r165614 = r165606 / r165613;
        double r165615 = sqrt(r165614);
        double r165616 = r165603 / r165615;
        double r165617 = sqrt(r165599);
        double r165618 = hypot(r165616, r165617);
        double r165619 = r165618 * r165611;
        double r165620 = r165598 ? r165612 : r165619;
        return r165620;
}

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 2 regimes
  2. if (pow (/ (* M D) (* 2.0 d)) 2.0) < 6.110815070528172e+105

    1. Initial program 5.9

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

      \[\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.9

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

      \[\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 div-inv5.4

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

      \[\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)}}}{\ell \cdot \frac{1}{-h}} + 1} \cdot w0\]
    9. Applied times-frac1.0

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

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

    if 6.110815070528172e+105 < (pow (/ (* M D) (* 2.0 d)) 2.0)

    1. Initial program 43.6

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Simplified43.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-udef43.6

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

      \[\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-sqrt43.5

      \[\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-sqrt49.0

      \[\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-pow49.0

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

      \[\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-def31.6

      \[\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\]
  3. Recombined 2 regimes into one program.
  4. Final simplification7.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \le 6.11081507052817196513612330776120330556 \cdot 10^{105}:\\ \;\;\;\;\sqrt{1 + \left(h \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{-{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\ell}} \cdot w0\\ \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 2019194 +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))))))