Average Error: 58.1 → 46.9
Time: 3.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}\;w \le -5.2266222523996 \cdot 10^{+14}:\\ \;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\ \mathbf{elif}\;w \le 2.5847391640625427 \cdot 10^{+17}:\\ \;\;\;\;\frac{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \left(\frac{c0 \cdot 2}{h} \cdot \frac{d}{D}\right)}{w}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\ \end{array}\]
double f(double c0, double w, double h, double D, double d, double M) {
        double r36790602 = c0;
        double r36790603 = 2.0;
        double r36790604 = w;
        double r36790605 = r36790603 * r36790604;
        double r36790606 = r36790602 / r36790605;
        double r36790607 = d;
        double r36790608 = r36790607 * r36790607;
        double r36790609 = r36790602 * r36790608;
        double r36790610 = h;
        double r36790611 = r36790604 * r36790610;
        double r36790612 = D;
        double r36790613 = r36790612 * r36790612;
        double r36790614 = r36790611 * r36790613;
        double r36790615 = r36790609 / r36790614;
        double r36790616 = r36790615 * r36790615;
        double r36790617 = M;
        double r36790618 = r36790617 * r36790617;
        double r36790619 = r36790616 - r36790618;
        double r36790620 = sqrt(r36790619);
        double r36790621 = r36790615 + r36790620;
        double r36790622 = r36790606 * r36790621;
        return r36790622;
}

double f(double c0, double w, double h, double D, double d, double __attribute__((unused)) M) {
        double r36790623 = w;
        double r36790624 = -5.2266222523996e+14;
        bool r36790625 = r36790623 <= r36790624;
        double r36790626 = d;
        double r36790627 = c0;
        double r36790628 = r36790626 * r36790627;
        double r36790629 = D;
        double r36790630 = r36790623 * r36790629;
        double r36790631 = r36790628 / r36790630;
        double r36790632 = r36790631 * r36790631;
        double r36790633 = h;
        double r36790634 = r36790632 / r36790633;
        double r36790635 = 2.0;
        double r36790636 = r36790634 * r36790635;
        double r36790637 = r36790636 / r36790635;
        double r36790638 = 2.5847391640625427e+17;
        bool r36790639 = r36790623 <= r36790638;
        double r36790640 = r36790627 / r36790623;
        double r36790641 = r36790626 / r36790629;
        double r36790642 = r36790627 * r36790635;
        double r36790643 = r36790642 / r36790633;
        double r36790644 = r36790643 * r36790641;
        double r36790645 = r36790641 * r36790644;
        double r36790646 = r36790645 / r36790623;
        double r36790647 = r36790640 * r36790646;
        double r36790648 = r36790647 / r36790635;
        double r36790649 = r36790639 ? r36790648 : r36790637;
        double r36790650 = r36790625 ? r36790637 : r36790649;
        return r36790650;
}

\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}\;w \le -5.2266222523996 \cdot 10^{+14}:\\
\;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\

\mathbf{elif}\;w \le 2.5847391640625427 \cdot 10^{+17}:\\
\;\;\;\;\frac{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \left(\frac{c0 \cdot 2}{h} \cdot \frac{d}{D}\right)}{w}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\

\end{array}

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

Derivation

  1. Split input into 2 regimes
  2. if w < -5.2266222523996e+14 or 2.5847391640625427e+17 < w

    1. Initial program 56.7

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

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

      \[\leadsto \frac{\color{blue}{\left(2 \cdot \frac{c0 \cdot {d}^{2}}{w \cdot \left({D}^{2} \cdot h\right)}\right)} \cdot \frac{c0}{w}}{2}\]
    4. Simplified53.9

      \[\leadsto \frac{\color{blue}{\frac{\frac{2 \cdot c0}{h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{w}} \cdot \frac{c0}{w}}{2}\]
    5. Taylor expanded around -inf 59.2

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}}{2}\]

    if -5.2266222523996e+14 < w < 2.5847391640625427e+17

    1. Initial program 59.3

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

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

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{2 \cdot c0}{h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{w}} \cdot \frac{c0}{w}}{2}\]
    5. Using strategy rm
    6. Applied associate-*r*52.3

      \[\leadsto \frac{\frac{\color{blue}{\left(\frac{2 \cdot c0}{h} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}}{w} \cdot \frac{c0}{w}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification46.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;w \le -5.2266222523996 \cdot 10^{+14}:\\ \;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\ \mathbf{elif}\;w \le 2.5847391640625427 \cdot 10^{+17}:\\ \;\;\;\;\frac{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \left(\frac{c0 \cdot 2}{h} \cdot \frac{d}{D}\right)}{w}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019102 
(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))))))