Average Error: 59.1 → 33.8
Time: 9.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)\]
\[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
double f(double c0, double w, double h, double D, double d, double M) {
        double r195305 = c0;
        double r195306 = 2.0;
        double r195307 = w;
        double r195308 = r195306 * r195307;
        double r195309 = r195305 / r195308;
        double r195310 = d;
        double r195311 = r195310 * r195310;
        double r195312 = r195305 * r195311;
        double r195313 = h;
        double r195314 = r195307 * r195313;
        double r195315 = D;
        double r195316 = r195315 * r195315;
        double r195317 = r195314 * r195316;
        double r195318 = r195312 / r195317;
        double r195319 = r195318 * r195318;
        double r195320 = M;
        double r195321 = r195320 * r195320;
        double r195322 = r195319 - r195321;
        double r195323 = sqrt(r195322);
        double r195324 = r195318 + r195323;
        double r195325 = r195309 * r195324;
        return r195325;
}

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 r195326 = 0.0;
        return r195326;
}

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

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

    \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{0}\]
  3. Using strategy rm
  4. Applied pow135.7

    \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{{0}^{1}}\]
  5. Applied pow135.7

    \[\leadsto \color{blue}{{\left(\frac{c0}{2 \cdot w}\right)}^{1}} \cdot {0}^{1}\]
  6. Applied pow-prod-down35.7

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

    \[\leadsto {\color{blue}{0}}^{1}\]
  8. Final simplification33.8

    \[\leadsto 0\]

Reproduce

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