Average Error: 14.0 → 8.9
Time: 54.1s
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} = -\infty \lor \neg \left(\frac{h}{\ell} \le -6.051505276988730809064682225880124571638 \cdot 10^{-311}\right):\\ \;\;\;\;w0 \cdot \sqrt{1}\\ \mathbf{else}:\\ \;\;\;\;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)}\\ \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} = -\infty \lor \neg \left(\frac{h}{\ell} \le -6.051505276988730809064682225880124571638 \cdot 10^{-311}\right):\\
\;\;\;\;w0 \cdot \sqrt{1}\\

\mathbf{else}:\\
\;\;\;\;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)}\\

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r172536 = w0;
        double r172537 = 1.0;
        double r172538 = M;
        double r172539 = D;
        double r172540 = r172538 * r172539;
        double r172541 = 2.0;
        double r172542 = d;
        double r172543 = r172541 * r172542;
        double r172544 = r172540 / r172543;
        double r172545 = pow(r172544, r172541);
        double r172546 = h;
        double r172547 = l;
        double r172548 = r172546 / r172547;
        double r172549 = r172545 * r172548;
        double r172550 = r172537 - r172549;
        double r172551 = sqrt(r172550);
        double r172552 = r172536 * r172551;
        return r172552;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r172553 = h;
        double r172554 = l;
        double r172555 = r172553 / r172554;
        double r172556 = -inf.0;
        bool r172557 = r172555 <= r172556;
        double r172558 = -6.0515052769887e-311;
        bool r172559 = r172555 <= r172558;
        double r172560 = !r172559;
        bool r172561 = r172557 || r172560;
        double r172562 = w0;
        double r172563 = 1.0;
        double r172564 = sqrt(r172563);
        double r172565 = r172562 * r172564;
        double r172566 = M;
        double r172567 = D;
        double r172568 = r172566 * r172567;
        double r172569 = 2.0;
        double r172570 = d;
        double r172571 = r172569 * r172570;
        double r172572 = r172568 / r172571;
        double r172573 = 2.0;
        double r172574 = r172569 / r172573;
        double r172575 = pow(r172572, r172574);
        double r172576 = r172575 * r172555;
        double r172577 = r172575 * r172576;
        double r172578 = r172563 - r172577;
        double r172579 = sqrt(r172578);
        double r172580 = r172562 * r172579;
        double r172581 = r172561 ? r172565 : r172580;
        return r172581;
}

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 (/ h l) < -inf.0 or -6.0515052769887e-311 < (/ h l)

    1. Initial program 13.6

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

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

    if -inf.0 < (/ h l) < -6.0515052769887e-311

    1. Initial program 14.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 sqr-pow14.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{h}{\ell} = -\infty \lor \neg \left(\frac{h}{\ell} \le -6.051505276988730809064682225880124571638 \cdot 10^{-311}\right):\\ \;\;\;\;w0 \cdot \sqrt{1}\\ \mathbf{else}:\\ \;\;\;\;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)}\\ \end{array}\]

Reproduce

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