Average Error: 59.2 → 32.1
Time: 8.4s
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}\;\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) \le 1.996806307158958 \cdot 10^{263}:\\ \;\;\;\;\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)\\ \mathbf{else}:\\ \;\;\;\;0 \cdot \sqrt[3]{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}\;\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) \le 1.996806307158958 \cdot 10^{263}:\\
\;\;\;\;\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)\\

\mathbf{else}:\\
\;\;\;\;0 \cdot \sqrt[3]{0}\\

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r228129 = c0;
        double r228130 = 2.0;
        double r228131 = w;
        double r228132 = r228130 * r228131;
        double r228133 = r228129 / r228132;
        double r228134 = d;
        double r228135 = r228134 * r228134;
        double r228136 = r228129 * r228135;
        double r228137 = h;
        double r228138 = r228131 * r228137;
        double r228139 = D;
        double r228140 = r228139 * r228139;
        double r228141 = r228138 * r228140;
        double r228142 = r228136 / r228141;
        double r228143 = r228142 * r228142;
        double r228144 = M;
        double r228145 = r228144 * r228144;
        double r228146 = r228143 - r228145;
        double r228147 = sqrt(r228146);
        double r228148 = r228142 + r228147;
        double r228149 = r228133 * r228148;
        return r228149;
}

double f(double c0, double w, double h, double D, double d, double M) {
        double r228150 = c0;
        double r228151 = 2.0;
        double r228152 = w;
        double r228153 = r228151 * r228152;
        double r228154 = r228150 / r228153;
        double r228155 = d;
        double r228156 = r228155 * r228155;
        double r228157 = r228150 * r228156;
        double r228158 = h;
        double r228159 = r228152 * r228158;
        double r228160 = D;
        double r228161 = r228160 * r228160;
        double r228162 = r228159 * r228161;
        double r228163 = r228157 / r228162;
        double r228164 = r228163 * r228163;
        double r228165 = M;
        double r228166 = r228165 * r228165;
        double r228167 = r228164 - r228166;
        double r228168 = sqrt(r228167);
        double r228169 = r228163 + r228168;
        double r228170 = r228154 * r228169;
        double r228171 = 1.996806307158958e+263;
        bool r228172 = r228170 <= r228171;
        double r228173 = 0.0;
        double r228174 = cbrt(r228173);
        double r228175 = r228173 * r228174;
        double r228176 = r228172 ? r228170 : r228175;
        return r228176;
}

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 (* (/ c0 (* 2.0 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))))) < 1.996806307158958e+263

    1. Initial program 34.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)\]

    if 1.996806307158958e+263 < (* (/ c0 (* 2.0 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)))))

    1. Initial program 63.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 33.9

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{0}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt33.9

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\left(\left(\sqrt[3]{0} \cdot \sqrt[3]{0}\right) \cdot \sqrt[3]{0}\right)}\]
    5. Applied associate-*r*33.9

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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) \le 1.996806307158958 \cdot 10^{263}:\\ \;\;\;\;\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)\\ \mathbf{else}:\\ \;\;\;\;0 \cdot \sqrt[3]{0}\\ \end{array}\]

Reproduce

herbie shell --seed 2020062 +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))))))