Average Error: 59.3 → 33.9
Time: 27.7s
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)\]
\[\frac{1}{2} \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)
\frac{1}{2} \cdot 0
double f(double c0, double w, double h, double D, double d, double M) {
        double r111783 = c0;
        double r111784 = 2.0;
        double r111785 = w;
        double r111786 = r111784 * r111785;
        double r111787 = r111783 / r111786;
        double r111788 = d;
        double r111789 = r111788 * r111788;
        double r111790 = r111783 * r111789;
        double r111791 = h;
        double r111792 = r111785 * r111791;
        double r111793 = D;
        double r111794 = r111793 * r111793;
        double r111795 = r111792 * r111794;
        double r111796 = r111790 / r111795;
        double r111797 = r111796 * r111796;
        double r111798 = M;
        double r111799 = r111798 * r111798;
        double r111800 = r111797 - r111799;
        double r111801 = sqrt(r111800);
        double r111802 = r111796 + r111801;
        double r111803 = r111787 * r111802;
        return r111803;
}

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 r111804 = 1.0;
        double r111805 = 2.0;
        double r111806 = r111804 / r111805;
        double r111807 = 0.0;
        double r111808 = r111806 * r111807;
        return r111808;
}

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.3

    \[\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.8

    \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{0}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity35.8

    \[\leadsto \frac{\color{blue}{1 \cdot c0}}{2 \cdot w} \cdot 0\]
  5. Applied times-frac35.8

    \[\leadsto \color{blue}{\left(\frac{1}{2} \cdot \frac{c0}{w}\right)} \cdot 0\]
  6. Applied associate-*l*35.8

    \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(\frac{c0}{w} \cdot 0\right)}\]
  7. Simplified33.9

    \[\leadsto \frac{1}{2} \cdot \color{blue}{0}\]
  8. Final simplification33.9

    \[\leadsto \frac{1}{2} \cdot 0\]

Reproduce

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