Average Error: 59.2 → 33.6
Time: 18.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)\]
\[0 \cdot 0\]
\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)
0 \cdot 0
double f(double c0, double w, double h, double D, double d, double M) {
        double r153841 = c0;
        double r153842 = 2.0;
        double r153843 = w;
        double r153844 = r153842 * r153843;
        double r153845 = r153841 / r153844;
        double r153846 = d;
        double r153847 = r153846 * r153846;
        double r153848 = r153841 * r153847;
        double r153849 = h;
        double r153850 = r153843 * r153849;
        double r153851 = D;
        double r153852 = r153851 * r153851;
        double r153853 = r153850 * r153852;
        double r153854 = r153848 / r153853;
        double r153855 = r153854 * r153854;
        double r153856 = M;
        double r153857 = r153856 * r153856;
        double r153858 = r153855 - r153857;
        double r153859 = sqrt(r153858);
        double r153860 = r153854 + r153859;
        double r153861 = r153845 * r153860;
        return r153861;
}

double f(double __attribute__((unused)) c0, double __attribute__((unused)) w, double __attribute__((unused)) h, double __attribute__((unused)) D, double __attribute__((unused)) d, double __attribute__((unused)) M) {
        double r153862 = 0.0;
        double r153863 = r153862 * r153862;
        return r153863;
}

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. Initial program 59.2

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

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

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

    \[\leadsto \color{blue}{0} \cdot \sqrt[3]{\frac{c0}{2 \cdot w} \cdot 0}\]
  6. Simplified33.6

    \[\leadsto 0 \cdot \color{blue}{0}\]
  7. Final simplification33.6

    \[\leadsto 0 \cdot 0\]

Reproduce

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