Average Error: 13.7 → 7.7
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{M \cdot D}{2 \cdot d} \le 1.463865090918739845478740718004778588708 \cdot 10^{287}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \frac{{\left(\frac{1}{\frac{2 \cdot d}{M \cdot D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\sqrt[3]{\ell}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot \frac{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}\;\frac{M \cdot D}{2 \cdot d} \le 1.463865090918739845478740718004778588708 \cdot 10^{287}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \frac{{\left(\frac{1}{\frac{2 \cdot d}{M \cdot D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\sqrt[3]{\ell}}}\\

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

\end{array}
double f(double w0, double M, double D, double h, double l, double d) {
        double r250377 = w0;
        double r250378 = 1.0;
        double r250379 = M;
        double r250380 = D;
        double r250381 = r250379 * r250380;
        double r250382 = 2.0;
        double r250383 = d;
        double r250384 = r250382 * r250383;
        double r250385 = r250381 / r250384;
        double r250386 = pow(r250385, r250382);
        double r250387 = h;
        double r250388 = l;
        double r250389 = r250387 / r250388;
        double r250390 = r250386 * r250389;
        double r250391 = r250378 - r250390;
        double r250392 = sqrt(r250391);
        double r250393 = r250377 * r250392;
        return r250393;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r250394 = M;
        double r250395 = D;
        double r250396 = r250394 * r250395;
        double r250397 = 2.0;
        double r250398 = d;
        double r250399 = r250397 * r250398;
        double r250400 = r250396 / r250399;
        double r250401 = 1.4638650909187398e+287;
        bool r250402 = r250400 <= r250401;
        double r250403 = w0;
        double r250404 = 1.0;
        double r250405 = 2.0;
        double r250406 = r250397 / r250405;
        double r250407 = pow(r250400, r250406);
        double r250408 = l;
        double r250409 = cbrt(r250408);
        double r250410 = r250409 * r250409;
        double r250411 = r250407 / r250410;
        double r250412 = 1.0;
        double r250413 = r250399 / r250396;
        double r250414 = r250412 / r250413;
        double r250415 = pow(r250414, r250406);
        double r250416 = h;
        double r250417 = r250415 * r250416;
        double r250418 = r250417 / r250409;
        double r250419 = r250411 * r250418;
        double r250420 = r250404 - r250419;
        double r250421 = sqrt(r250420);
        double r250422 = r250403 * r250421;
        double r250423 = r250399 / r250395;
        double r250424 = r250394 / r250423;
        double r250425 = pow(r250424, r250397);
        double r250426 = r250416 / r250408;
        double r250427 = r250425 * r250426;
        double r250428 = r250404 - r250427;
        double r250429 = sqrt(r250428);
        double r250430 = r250403 * r250429;
        double r250431 = r250402 ? r250422 : r250430;
        return r250431;
}

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 (/ (* M D) (* 2.0 d)) < 1.4638650909187398e+287

    1. Initial program 12.0

      \[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/8.5

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

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

      \[\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 add-cube-cbrt7.0

      \[\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}{\left(\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}\right) \cdot \sqrt[3]{\ell}}}}\]
    9. Applied times-frac6.1

      \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\sqrt[3]{\ell}}}}\]
    10. Using strategy rm
    11. Applied clear-num6.1

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

    if 1.4638650909187398e+287 < (/ (* M D) (* 2.0 d))

    1. Initial program 64.0

      \[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-/l*53.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{M \cdot D}{2 \cdot d} \le 1.463865090918739845478740718004778588708 \cdot 10^{287}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \frac{{\left(\frac{1}{\frac{2 \cdot d}{M \cdot D}}\right)}^{\left(\frac{2}{2}\right)} \cdot h}{\sqrt[3]{\ell}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot \frac{h}{\ell}}\\ \end{array}\]

Reproduce

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