Average Error: 58.9 → 33.6
Time: 38.0s
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{\sqrt[3]{c0} \cdot \sqrt[3]{c0}}{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{\sqrt[3]{c0} \cdot \sqrt[3]{c0}}{2} \cdot 0
double f(double c0, double w, double h, double D, double d, double M) {
        double r120502 = c0;
        double r120503 = 2.0;
        double r120504 = w;
        double r120505 = r120503 * r120504;
        double r120506 = r120502 / r120505;
        double r120507 = d;
        double r120508 = r120507 * r120507;
        double r120509 = r120502 * r120508;
        double r120510 = h;
        double r120511 = r120504 * r120510;
        double r120512 = D;
        double r120513 = r120512 * r120512;
        double r120514 = r120511 * r120513;
        double r120515 = r120509 / r120514;
        double r120516 = r120515 * r120515;
        double r120517 = M;
        double r120518 = r120517 * r120517;
        double r120519 = r120516 - r120518;
        double r120520 = sqrt(r120519);
        double r120521 = r120515 + r120520;
        double r120522 = r120506 * r120521;
        return r120522;
}

double f(double c0, double __attribute__((unused)) w, double __attribute__((unused)) h, double __attribute__((unused)) D, double __attribute__((unused)) d, double __attribute__((unused)) M) {
        double r120523 = c0;
        double r120524 = cbrt(r120523);
        double r120525 = r120524 * r120524;
        double r120526 = 2.0;
        double r120527 = r120525 / r120526;
        double r120528 = 0.0;
        double r120529 = r120527 * r120528;
        return r120529;
}

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 58.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 35.5

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

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

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

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

    \[\leadsto \frac{\sqrt[3]{c0} \cdot \sqrt[3]{c0}}{2} \cdot \color{blue}{0}\]
  8. Final simplification33.6

    \[\leadsto \frac{\sqrt[3]{c0} \cdot \sqrt[3]{c0}}{2} \cdot 0\]

Reproduce

herbie shell --seed 2019306 
(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))))))