Average Error: 59.3 → 34.5
Time: 32.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 \le 1.028014946374977112793459567345674978253 \cdot 10^{-41}:\\ \;\;\;\;0\\ \mathbf{elif}\;d \le 1.879132275263087348510262122271649682884 \cdot 10^{52}:\\ \;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \frac{{d}^{2} \cdot c0}{w \cdot \left({D}^{2} \cdot h\right)}\right)\\ \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}\;d \le 1.028014946374977112793459567345674978253 \cdot 10^{-41}:\\
\;\;\;\;0\\

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

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

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r158066 = c0;
        double r158067 = 2.0;
        double r158068 = w;
        double r158069 = r158067 * r158068;
        double r158070 = r158066 / r158069;
        double r158071 = d;
        double r158072 = r158071 * r158071;
        double r158073 = r158066 * r158072;
        double r158074 = h;
        double r158075 = r158068 * r158074;
        double r158076 = D;
        double r158077 = r158076 * r158076;
        double r158078 = r158075 * r158077;
        double r158079 = r158073 / r158078;
        double r158080 = r158079 * r158079;
        double r158081 = M;
        double r158082 = r158081 * r158081;
        double r158083 = r158080 - r158082;
        double r158084 = sqrt(r158083);
        double r158085 = r158079 + r158084;
        double r158086 = r158070 * r158085;
        return r158086;
}

double f(double c0, double w, double h, double D, double d, double __attribute__((unused)) M) {
        double r158087 = d;
        double r158088 = 1.0280149463749771e-41;
        bool r158089 = r158087 <= r158088;
        double r158090 = 0.0;
        double r158091 = 1.8791322752630873e+52;
        bool r158092 = r158087 <= r158091;
        double r158093 = c0;
        double r158094 = 2.0;
        double r158095 = w;
        double r158096 = r158094 * r158095;
        double r158097 = r158093 / r158096;
        double r158098 = 2.0;
        double r158099 = pow(r158087, r158098);
        double r158100 = r158099 * r158093;
        double r158101 = D;
        double r158102 = pow(r158101, r158098);
        double r158103 = h;
        double r158104 = r158102 * r158103;
        double r158105 = r158095 * r158104;
        double r158106 = r158100 / r158105;
        double r158107 = r158098 * r158106;
        double r158108 = r158097 * r158107;
        double r158109 = r158092 ? r158108 : r158090;
        double r158110 = r158089 ? r158090 : r158109;
        return r158110;
}

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 < 1.0280149463749771e-41 or 1.8791322752630873e+52 < d

    1. Initial program 59.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. Taylor expanded around inf 34.6

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{0}\]
    3. Using strategy rm
    4. Applied add-cbrt-cube34.6

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\sqrt[3]{\left(0 \cdot 0\right) \cdot 0}}\]
    5. Applied add-cbrt-cube41.5

      \[\leadsto \frac{c0}{2 \cdot \color{blue}{\sqrt[3]{\left(w \cdot w\right) \cdot w}}} \cdot \sqrt[3]{\left(0 \cdot 0\right) \cdot 0}\]
    6. Applied add-cbrt-cube41.5

      \[\leadsto \frac{c0}{\color{blue}{\sqrt[3]{\left(2 \cdot 2\right) \cdot 2}} \cdot \sqrt[3]{\left(w \cdot w\right) \cdot w}} \cdot \sqrt[3]{\left(0 \cdot 0\right) \cdot 0}\]
    7. Applied cbrt-unprod41.5

      \[\leadsto \frac{c0}{\color{blue}{\sqrt[3]{\left(\left(2 \cdot 2\right) \cdot 2\right) \cdot \left(\left(w \cdot w\right) \cdot w\right)}}} \cdot \sqrt[3]{\left(0 \cdot 0\right) \cdot 0}\]
    8. Applied add-cbrt-cube48.4

      \[\leadsto \frac{\color{blue}{\sqrt[3]{\left(c0 \cdot c0\right) \cdot c0}}}{\sqrt[3]{\left(\left(2 \cdot 2\right) \cdot 2\right) \cdot \left(\left(w \cdot w\right) \cdot w\right)}} \cdot \sqrt[3]{\left(0 \cdot 0\right) \cdot 0}\]
    9. Applied cbrt-undiv48.8

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\left(c0 \cdot c0\right) \cdot c0}{\left(\left(2 \cdot 2\right) \cdot 2\right) \cdot \left(\left(w \cdot w\right) \cdot w\right)}}} \cdot \sqrt[3]{\left(0 \cdot 0\right) \cdot 0}\]
    10. Applied cbrt-unprod48.8

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\left(c0 \cdot c0\right) \cdot c0}{\left(\left(2 \cdot 2\right) \cdot 2\right) \cdot \left(\left(w \cdot w\right) \cdot w\right)} \cdot \left(\left(0 \cdot 0\right) \cdot 0\right)}}\]
    11. Simplified32.7

      \[\leadsto \sqrt[3]{\color{blue}{0}}\]

    if 1.0280149463749771e-41 < d < 1.8791322752630873e+52

    1. Initial program 52.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. Using strategy rm
    3. Applied associate-/l*53.8

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;d \le 1.028014946374977112793459567345674978253 \cdot 10^{-41}:\\ \;\;\;\;0\\ \mathbf{elif}\;d \le 1.879132275263087348510262122271649682884 \cdot 10^{52}:\\ \;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \frac{{d}^{2} \cdot c0}{w \cdot \left({D}^{2} \cdot h\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(FPCore (c0 w h D d M)
  :name "Henrywood and Agarwal, Equation (13)"
  :precision binary64
  (* (/ 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))))))