Average Error: 58.2 → 51.2
Time: 56.1s
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}\;D \cdot D \le 1.4002829474461056 \cdot 10^{-270}:\\ \;\;\;\;\frac{e^{\log \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + M\right) \cdot \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} - M\right)}\right)}}{w} \cdot \frac{c0}{2}\\ \mathbf{elif}\;D \cdot D \le 1.2358590730630332 \cdot 10^{+137}:\\ \;\;\;\;\frac{\frac{c0 \cdot 2}{\frac{D \cdot D}{d} \cdot \frac{w \cdot h}{d}}}{w} \cdot \frac{c0}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + M\right) \cdot \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} - M\right)}\right)}}{w} \cdot \frac{c0}{2}\\ \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}\;D \cdot D \le 1.4002829474461056 \cdot 10^{-270}:\\
\;\;\;\;\frac{e^{\log \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + M\right) \cdot \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} - M\right)}\right)}}{w} \cdot \frac{c0}{2}\\

\mathbf{elif}\;D \cdot D \le 1.2358590730630332 \cdot 10^{+137}:\\
\;\;\;\;\frac{\frac{c0 \cdot 2}{\frac{D \cdot D}{d} \cdot \frac{w \cdot h}{d}}}{w} \cdot \frac{c0}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{e^{\log \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} + M\right) \cdot \left(\frac{\frac{d}{D} \cdot \left(\frac{c0}{w} \cdot \frac{d}{D}\right)}{h} - M\right)}\right)}}{w} \cdot \frac{c0}{2}\\

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r6006573 = c0;
        double r6006574 = 2.0;
        double r6006575 = w;
        double r6006576 = r6006574 * r6006575;
        double r6006577 = r6006573 / r6006576;
        double r6006578 = d;
        double r6006579 = r6006578 * r6006578;
        double r6006580 = r6006573 * r6006579;
        double r6006581 = h;
        double r6006582 = r6006575 * r6006581;
        double r6006583 = D;
        double r6006584 = r6006583 * r6006583;
        double r6006585 = r6006582 * r6006584;
        double r6006586 = r6006580 / r6006585;
        double r6006587 = r6006586 * r6006586;
        double r6006588 = M;
        double r6006589 = r6006588 * r6006588;
        double r6006590 = r6006587 - r6006589;
        double r6006591 = sqrt(r6006590);
        double r6006592 = r6006586 + r6006591;
        double r6006593 = r6006577 * r6006592;
        return r6006593;
}

double f(double c0, double w, double h, double D, double d, double M) {
        double r6006594 = D;
        double r6006595 = r6006594 * r6006594;
        double r6006596 = 1.4002829474461056e-270;
        bool r6006597 = r6006595 <= r6006596;
        double r6006598 = d;
        double r6006599 = r6006598 / r6006594;
        double r6006600 = c0;
        double r6006601 = w;
        double r6006602 = r6006600 / r6006601;
        double r6006603 = r6006602 * r6006599;
        double r6006604 = r6006599 * r6006603;
        double r6006605 = h;
        double r6006606 = r6006604 / r6006605;
        double r6006607 = M;
        double r6006608 = r6006606 + r6006607;
        double r6006609 = r6006606 - r6006607;
        double r6006610 = r6006608 * r6006609;
        double r6006611 = sqrt(r6006610);
        double r6006612 = r6006606 + r6006611;
        double r6006613 = log(r6006612);
        double r6006614 = exp(r6006613);
        double r6006615 = r6006614 / r6006601;
        double r6006616 = 2.0;
        double r6006617 = r6006600 / r6006616;
        double r6006618 = r6006615 * r6006617;
        double r6006619 = 1.2358590730630332e+137;
        bool r6006620 = r6006595 <= r6006619;
        double r6006621 = r6006600 * r6006616;
        double r6006622 = r6006595 / r6006598;
        double r6006623 = r6006601 * r6006605;
        double r6006624 = r6006623 / r6006598;
        double r6006625 = r6006622 * r6006624;
        double r6006626 = r6006621 / r6006625;
        double r6006627 = r6006626 / r6006601;
        double r6006628 = r6006627 * r6006617;
        double r6006629 = r6006620 ? r6006628 : r6006618;
        double r6006630 = r6006597 ? r6006618 : r6006629;
        return r6006630;
}

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 (* D D) < 1.4002829474461056e-270 or 1.2358590730630332e+137 < (* D D)

    1. Initial program 60.8

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

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

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

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

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

    if 1.4002829474461056e-270 < (* D D) < 1.2358590730630332e+137

    1. Initial program 54.0

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

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

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

      \[\leadsto \frac{c0}{2} \cdot \frac{\color{blue}{2 \cdot \frac{c0 \cdot {d}^{2}}{{D}^{2} \cdot \left(w \cdot h\right)}}}{w}\]
    6. Simplified51.1

      \[\leadsto \frac{c0}{2} \cdot \frac{\color{blue}{\frac{c0 \cdot 2}{\frac{D \cdot D}{d} \cdot \frac{w \cdot h}{d}}}}{w}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification51.2

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

Reproduce

herbie shell --seed 2019141 
(FPCore (c0 w h D d M)
  :name "Henrywood and Agarwal, Equation (13)"
  (* (/ c0 (* 2 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))))))