Average Error: 59.6 → 32.3
Time: 5.3m
Precision: 64
\[\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\]
\[\begin{array}{l} \mathbf{if}\;\left(\frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} + \sqrt{\frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M}\right) \cdot \frac{c0}{w \cdot 2} \le 5.227488411028050344845658730793831779279 \cdot 10^{210}:\\ \;\;\;\;\frac{e^{\log \left(\sqrt{\frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h} \cdot \frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h} - M \cdot M} + \frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h}\right)}}{2} \cdot \frac{c0}{w}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]
\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)
\begin{array}{l}
\mathbf{if}\;\left(\frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} + \sqrt{\frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M}\right) \cdot \frac{c0}{w \cdot 2} \le 5.227488411028050344845658730793831779279 \cdot 10^{210}:\\
\;\;\;\;\frac{e^{\log \left(\sqrt{\frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h} \cdot \frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h} - M \cdot M} + \frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h}\right)}}{2} \cdot \frac{c0}{w}\\

\mathbf{else}:\\
\;\;\;\;0\\

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r5649434 = c0;
        double r5649435 = 2.0;
        double r5649436 = w;
        double r5649437 = r5649435 * r5649436;
        double r5649438 = r5649434 / r5649437;
        double r5649439 = d;
        double r5649440 = r5649439 * r5649439;
        double r5649441 = r5649434 * r5649440;
        double r5649442 = h;
        double r5649443 = r5649436 * r5649442;
        double r5649444 = D;
        double r5649445 = r5649444 * r5649444;
        double r5649446 = r5649443 * r5649445;
        double r5649447 = r5649441 / r5649446;
        double r5649448 = r5649447 * r5649447;
        double r5649449 = M;
        double r5649450 = r5649449 * r5649449;
        double r5649451 = r5649448 - r5649450;
        double r5649452 = sqrt(r5649451);
        double r5649453 = r5649447 + r5649452;
        double r5649454 = r5649438 * r5649453;
        return r5649454;
}

double f(double c0, double w, double h, double D, double d, double M) {
        double r5649455 = d;
        double r5649456 = r5649455 * r5649455;
        double r5649457 = c0;
        double r5649458 = r5649456 * r5649457;
        double r5649459 = D;
        double r5649460 = r5649459 * r5649459;
        double r5649461 = w;
        double r5649462 = h;
        double r5649463 = r5649461 * r5649462;
        double r5649464 = r5649460 * r5649463;
        double r5649465 = r5649458 / r5649464;
        double r5649466 = r5649465 * r5649465;
        double r5649467 = M;
        double r5649468 = r5649467 * r5649467;
        double r5649469 = r5649466 - r5649468;
        double r5649470 = sqrt(r5649469);
        double r5649471 = r5649465 + r5649470;
        double r5649472 = 2.0;
        double r5649473 = r5649461 * r5649472;
        double r5649474 = r5649457 / r5649473;
        double r5649475 = r5649471 * r5649474;
        double r5649476 = 5.2274884110280503e+210;
        bool r5649477 = r5649475 <= r5649476;
        double r5649478 = r5649457 / r5649461;
        double r5649479 = r5649455 / r5649459;
        double r5649480 = r5649479 * r5649479;
        double r5649481 = r5649478 * r5649480;
        double r5649482 = r5649481 / r5649462;
        double r5649483 = r5649482 * r5649482;
        double r5649484 = r5649483 - r5649468;
        double r5649485 = sqrt(r5649484);
        double r5649486 = r5649485 + r5649482;
        double r5649487 = log(r5649486);
        double r5649488 = exp(r5649487);
        double r5649489 = r5649488 / r5649472;
        double r5649490 = r5649489 * r5649478;
        double r5649491 = 0.0;
        double r5649492 = r5649477 ? r5649490 : r5649491;
        return r5649492;
}

Error

Bits error versus c0

Bits error versus w

Bits error versus h

Bits error versus D

Bits error versus d

Bits error versus M

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (* (/ c0 (* 2.0 w)) (+ (/ (* c0 (* d d)) (* (* w h) (* D D))) (sqrt (- (* (/ (* c0 (* d d)) (* (* w h) (* D D))) (/ (* c0 (* d d)) (* (* w h) (* D D)))) (* M M))))) < 5.2274884110280503e+210

    1. Initial program 36.2

      \[\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\]
    2. Simplified35.2

      \[\leadsto \color{blue}{\frac{c0}{w} \cdot \frac{\frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} + \sqrt{\frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} \cdot \frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} - M \cdot M}}{2}}\]
    3. Using strategy rm
    4. Applied add-exp-log37.2

      \[\leadsto \frac{c0}{w} \cdot \frac{\color{blue}{e^{\log \left(\frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} + \sqrt{\frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} \cdot \frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} - M \cdot M}\right)}}}{2}\]

    if 5.2274884110280503e+210 < (* (/ c0 (* 2.0 w)) (+ (/ (* c0 (* d d)) (* (* w h) (* D D))) (sqrt (- (* (/ (* c0 (* d d)) (* (* w h) (* D D))) (/ (* c0 (* d d)) (* (* w h) (* D D)))) (* M M)))))

    1. Initial program 63.9

      \[\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\]
    2. Simplified56.5

      \[\leadsto \color{blue}{\frac{c0}{w} \cdot \frac{\frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} + \sqrt{\frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} \cdot \frac{\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w}}{h} - M \cdot M}}{2}}\]
    3. Taylor expanded around inf 33.4

      \[\leadsto \frac{c0}{w} \cdot \frac{\color{blue}{0}}{2}\]
    4. Taylor expanded around 0 31.4

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification32.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} + \sqrt{\frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{\left(d \cdot d\right) \cdot c0}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M}\right) \cdot \frac{c0}{w \cdot 2} \le 5.227488411028050344845658730793831779279 \cdot 10^{210}:\\ \;\;\;\;\frac{e^{\log \left(\sqrt{\frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h} \cdot \frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h} - M \cdot M} + \frac{\frac{c0}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h}\right)}}{2} \cdot \frac{c0}{w}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

herbie shell --seed 2019200 
(FPCore (c0 w h D d M)
  :name "Henrywood and Agarwal, Equation (13)"
  (* (/ c0 (* 2.0 w)) (+ (/ (* c0 (* d d)) (* (* w h) (* D D))) (sqrt (- (* (/ (* c0 (* d d)) (* (* w h) (* D D))) (/ (* c0 (* d d)) (* (* w h) (* D D)))) (* M M))))))