Average Error: 58.1 → 50.6
Time: 3.8m
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}\;h \le -1.0777789780908555 \cdot 10^{-53}:\\ \;\;\;\;\frac{\frac{c0}{w} \cdot e^{\log \left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}} + \sqrt{\left(M + \frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}}\right) \cdot \left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}} - M\right)}\right)}}{2}\\ \mathbf{elif}\;h \le 1.6973391009673264 \cdot 10^{-280}:\\ \;\;\;\;\frac{\left(\frac{\left(\frac{d}{D} \cdot \frac{\frac{d}{D}}{w}\right) \cdot c0}{h} + \frac{c0}{\frac{h}{\frac{\frac{d}{D} \cdot \frac{d}{D}}{w}}}\right) \cdot \frac{c0}{w}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{c0}{w} \cdot e^{\log \left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}} + \sqrt{\left(M + \frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}}\right) \cdot \left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}} - M\right)}\right)}}{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}\;h \le -1.0777789780908555 \cdot 10^{-53}:\\
\;\;\;\;\frac{\frac{c0}{w} \cdot e^{\log \left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}} + \sqrt{\left(M + \frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}}\right) \cdot \left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\frac{h}{\frac{d}{D}}} - M\right)}\right)}}{2}\\

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

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

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r74793746 = c0;
        double r74793747 = 2.0;
        double r74793748 = w;
        double r74793749 = r74793747 * r74793748;
        double r74793750 = r74793746 / r74793749;
        double r74793751 = d;
        double r74793752 = r74793751 * r74793751;
        double r74793753 = r74793746 * r74793752;
        double r74793754 = h;
        double r74793755 = r74793748 * r74793754;
        double r74793756 = D;
        double r74793757 = r74793756 * r74793756;
        double r74793758 = r74793755 * r74793757;
        double r74793759 = r74793753 / r74793758;
        double r74793760 = r74793759 * r74793759;
        double r74793761 = M;
        double r74793762 = r74793761 * r74793761;
        double r74793763 = r74793760 - r74793762;
        double r74793764 = sqrt(r74793763);
        double r74793765 = r74793759 + r74793764;
        double r74793766 = r74793750 * r74793765;
        return r74793766;
}

double f(double c0, double w, double h, double D, double d, double M) {
        double r74793767 = h;
        double r74793768 = -1.0777789780908555e-53;
        bool r74793769 = r74793767 <= r74793768;
        double r74793770 = c0;
        double r74793771 = w;
        double r74793772 = r74793770 / r74793771;
        double r74793773 = d;
        double r74793774 = D;
        double r74793775 = r74793773 / r74793774;
        double r74793776 = r74793767 / r74793775;
        double r74793777 = r74793772 / r74793776;
        double r74793778 = r74793775 * r74793777;
        double r74793779 = M;
        double r74793780 = r74793779 + r74793778;
        double r74793781 = r74793778 - r74793779;
        double r74793782 = r74793780 * r74793781;
        double r74793783 = sqrt(r74793782);
        double r74793784 = r74793778 + r74793783;
        double r74793785 = log(r74793784);
        double r74793786 = exp(r74793785);
        double r74793787 = r74793772 * r74793786;
        double r74793788 = 2.0;
        double r74793789 = r74793787 / r74793788;
        double r74793790 = 1.6973391009673264e-280;
        bool r74793791 = r74793767 <= r74793790;
        double r74793792 = r74793775 / r74793771;
        double r74793793 = r74793775 * r74793792;
        double r74793794 = r74793793 * r74793770;
        double r74793795 = r74793794 / r74793767;
        double r74793796 = r74793775 * r74793775;
        double r74793797 = r74793796 / r74793771;
        double r74793798 = r74793767 / r74793797;
        double r74793799 = r74793770 / r74793798;
        double r74793800 = r74793795 + r74793799;
        double r74793801 = r74793800 * r74793772;
        double r74793802 = r74793801 / r74793788;
        double r74793803 = r74793791 ? r74793802 : r74793789;
        double r74793804 = r74793769 ? r74793789 : r74793803;
        return r74793804;
}

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 h < -1.0777789780908555e-53 or 1.6973391009673264e-280 < h

    1. Initial program 57.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. Simplified52.1

      \[\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. Using strategy rm
    4. Applied div-inv52.8

      \[\leadsto \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{\color{blue}{\left(c0 \cdot \frac{1}{w}\right)} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h}\right) \cdot \frac{c0}{w}}{2}\]
    5. Applied associate-*l*54.2

      \[\leadsto \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{\color{blue}{c0 \cdot \left(\frac{1}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)}}{h}\right) \cdot \frac{c0}{w}}{2}\]
    6. Simplified54.2

      \[\leadsto \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{c0 \cdot \color{blue}{\left(\frac{d}{D} \cdot \frac{\frac{d}{D}}{w}\right)}}{h}\right) \cdot \frac{c0}{w}}{2}\]
    7. Using strategy rm
    8. Applied add-exp-log55.2

      \[\leadsto \frac{\color{blue}{e^{\log \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{c0 \cdot \left(\frac{d}{D} \cdot \frac{\frac{d}{D}}{w}\right)}{h}\right)}} \cdot \frac{c0}{w}}{2}\]
    9. Simplified49.6

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

    if -1.0777789780908555e-53 < h < 1.6973391009673264e-280

    1. Initial program 58.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. Simplified52.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. Using strategy rm
    4. Applied div-inv53.0

      \[\leadsto \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{\color{blue}{\left(c0 \cdot \frac{1}{w}\right)} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)}{h}\right) \cdot \frac{c0}{w}}{2}\]
    5. Applied associate-*l*54.1

      \[\leadsto \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{\color{blue}{c0 \cdot \left(\frac{1}{w} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)}}{h}\right) \cdot \frac{c0}{w}}{2}\]
    6. Simplified54.4

      \[\leadsto \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{c0 \cdot \color{blue}{\left(\frac{d}{D} \cdot \frac{\frac{d}{D}}{w}\right)}}{h}\right) \cdot \frac{c0}{w}}{2}\]
    7. Taylor expanded around 0 59.4

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

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

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

Reproduce

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