Average Error: 57.7 → 35.1
Time: 4.0m
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}\;M \le -3.3977465073006914 \cdot 10^{+140}:\\ \;\;\;\;\frac{2 \cdot \frac{\frac{d \cdot c0}{D \cdot w}}{\frac{h}{\frac{\frac{d \cdot c0}{w}}{D}}}}{2}\\ \mathbf{elif}\;M \le 3.6094771780886608:\\ \;\;\;\;0\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot \frac{\frac{d \cdot c0}{D \cdot w}}{\frac{h}{\frac{\frac{d \cdot c0}{w}}{D}}}}{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}\;M \le -3.3977465073006914 \cdot 10^{+140}:\\
\;\;\;\;\frac{2 \cdot \frac{\frac{d \cdot c0}{D \cdot w}}{\frac{h}{\frac{\frac{d \cdot c0}{w}}{D}}}}{2}\\

\mathbf{elif}\;M \le 3.6094771780886608:\\
\;\;\;\;0\\

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

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r54269624 = c0;
        double r54269625 = 2.0;
        double r54269626 = w;
        double r54269627 = r54269625 * r54269626;
        double r54269628 = r54269624 / r54269627;
        double r54269629 = d;
        double r54269630 = r54269629 * r54269629;
        double r54269631 = r54269624 * r54269630;
        double r54269632 = h;
        double r54269633 = r54269626 * r54269632;
        double r54269634 = D;
        double r54269635 = r54269634 * r54269634;
        double r54269636 = r54269633 * r54269635;
        double r54269637 = r54269631 / r54269636;
        double r54269638 = r54269637 * r54269637;
        double r54269639 = M;
        double r54269640 = r54269639 * r54269639;
        double r54269641 = r54269638 - r54269640;
        double r54269642 = sqrt(r54269641);
        double r54269643 = r54269637 + r54269642;
        double r54269644 = r54269628 * r54269643;
        return r54269644;
}

double f(double c0, double w, double h, double D, double d, double M) {
        double r54269645 = M;
        double r54269646 = -3.3977465073006914e+140;
        bool r54269647 = r54269645 <= r54269646;
        double r54269648 = 2.0;
        double r54269649 = d;
        double r54269650 = c0;
        double r54269651 = r54269649 * r54269650;
        double r54269652 = D;
        double r54269653 = w;
        double r54269654 = r54269652 * r54269653;
        double r54269655 = r54269651 / r54269654;
        double r54269656 = h;
        double r54269657 = r54269651 / r54269653;
        double r54269658 = r54269657 / r54269652;
        double r54269659 = r54269656 / r54269658;
        double r54269660 = r54269655 / r54269659;
        double r54269661 = r54269648 * r54269660;
        double r54269662 = r54269661 / r54269648;
        double r54269663 = 3.6094771780886608;
        bool r54269664 = r54269645 <= r54269663;
        double r54269665 = 0.0;
        double r54269666 = r54269664 ? r54269665 : r54269662;
        double r54269667 = r54269647 ? r54269662 : r54269666;
        return r54269667;
}

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 M < -3.3977465073006914e+140 or 3.6094771780886608 < M

    1. Initial program 61.6

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

      \[\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 61.5

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}}{2}\]
    5. Using strategy rm
    6. Applied associate-/l*50.8

      \[\leadsto \frac{\color{blue}{\frac{\frac{d \cdot c0}{w \cdot D}}{\frac{h}{\frac{d \cdot c0}{w \cdot D}}}} \cdot 2}{2}\]
    7. Using strategy rm
    8. Applied associate-/r*51.2

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

    if -3.3977465073006914e+140 < M < 3.6094771780886608

    1. Initial program 56.5

      \[\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. Simplified48.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 -inf 29.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;M \le -3.3977465073006914 \cdot 10^{+140}:\\ \;\;\;\;\frac{2 \cdot \frac{\frac{d \cdot c0}{D \cdot w}}{\frac{h}{\frac{\frac{d \cdot c0}{w}}{D}}}}{2}\\ \mathbf{elif}\;M \le 3.6094771780886608:\\ \;\;\;\;0\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot \frac{\frac{d \cdot c0}{D \cdot w}}{\frac{h}{\frac{\frac{d \cdot c0}{w}}{D}}}}{2}\\ \end{array}\]

Reproduce

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