Average Error: 14.6 → 9.3
Time: 16.6s
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} \le -4.434769257142831 \cdot 10^{294} \lor \neg \left(\frac{h}{\ell} \le -3.0353158251 \cdot 10^{-314}\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} \le -4.434769257142831 \cdot 10^{294} \lor \neg \left(\frac{h}{\ell} \le -3.0353158251 \cdot 10^{-314}\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 r215464 = w0;
        double r215465 = 1.0;
        double r215466 = M;
        double r215467 = D;
        double r215468 = r215466 * r215467;
        double r215469 = 2.0;
        double r215470 = d;
        double r215471 = r215469 * r215470;
        double r215472 = r215468 / r215471;
        double r215473 = pow(r215472, r215469);
        double r215474 = h;
        double r215475 = l;
        double r215476 = r215474 / r215475;
        double r215477 = r215473 * r215476;
        double r215478 = r215465 - r215477;
        double r215479 = sqrt(r215478);
        double r215480 = r215464 * r215479;
        return r215480;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r215481 = h;
        double r215482 = l;
        double r215483 = r215481 / r215482;
        double r215484 = -4.434769257142831e+294;
        bool r215485 = r215483 <= r215484;
        double r215486 = -3.0353158251021e-314;
        bool r215487 = r215483 <= r215486;
        double r215488 = !r215487;
        bool r215489 = r215485 || r215488;
        double r215490 = w0;
        double r215491 = 1.0;
        double r215492 = sqrt(r215491);
        double r215493 = r215490 * r215492;
        double r215494 = M;
        double r215495 = D;
        double r215496 = r215494 * r215495;
        double r215497 = 2.0;
        double r215498 = d;
        double r215499 = r215497 * r215498;
        double r215500 = r215496 / r215499;
        double r215501 = 2.0;
        double r215502 = r215497 / r215501;
        double r215503 = pow(r215500, r215502);
        double r215504 = r215503 * r215483;
        double r215505 = r215503 * r215504;
        double r215506 = r215491 - r215505;
        double r215507 = sqrt(r215506);
        double r215508 = r215490 * r215507;
        double r215509 = r215489 ? r215493 : r215508;
        return r215509;
}

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) < -4.434769257142831e+294 or -3.0353158251021e-314 < (/ h l)

    1. Initial program 14.5

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

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

    if -4.434769257142831e+294 < (/ h l) < -3.0353158251021e-314

    1. Initial program 14.6

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

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

      \[\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 simplification9.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{h}{\ell} \le -4.434769257142831 \cdot 10^{294} \lor \neg \left(\frac{h}{\ell} \le -3.0353158251 \cdot 10^{-314}\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 2020047 
(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))))))