Average Error: 59.0 → 33.1
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)\]
\[\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 2476228.3530077836476266384124755859375:\\ \;\;\;\;\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}:\\ \;\;\;\;e^{\log 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 2476228.3530077836476266384124755859375:\\
\;\;\;\;\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}:\\
\;\;\;\;e^{\log 0}\\

\end{array}
double f(double c0, double w, double h, double D, double d, double M) {
        double r259511 = c0;
        double r259512 = 2.0;
        double r259513 = w;
        double r259514 = r259512 * r259513;
        double r259515 = r259511 / r259514;
        double r259516 = d;
        double r259517 = r259516 * r259516;
        double r259518 = r259511 * r259517;
        double r259519 = h;
        double r259520 = r259513 * r259519;
        double r259521 = D;
        double r259522 = r259521 * r259521;
        double r259523 = r259520 * r259522;
        double r259524 = r259518 / r259523;
        double r259525 = r259524 * r259524;
        double r259526 = M;
        double r259527 = r259526 * r259526;
        double r259528 = r259525 - r259527;
        double r259529 = sqrt(r259528);
        double r259530 = r259524 + r259529;
        double r259531 = r259515 * r259530;
        return r259531;
}

double f(double c0, double w, double h, double D, double d, double M) {
        double r259532 = c0;
        double r259533 = 2.0;
        double r259534 = w;
        double r259535 = r259533 * r259534;
        double r259536 = r259532 / r259535;
        double r259537 = d;
        double r259538 = r259537 * r259537;
        double r259539 = r259532 * r259538;
        double r259540 = h;
        double r259541 = r259534 * r259540;
        double r259542 = D;
        double r259543 = r259542 * r259542;
        double r259544 = r259541 * r259543;
        double r259545 = r259539 / r259544;
        double r259546 = r259545 * r259545;
        double r259547 = M;
        double r259548 = r259547 * r259547;
        double r259549 = r259546 - r259548;
        double r259550 = sqrt(r259549);
        double r259551 = r259545 + r259550;
        double r259552 = r259536 * r259551;
        double r259553 = 2476228.3530077836;
        bool r259554 = r259552 <= r259553;
        double r259555 = 0.0;
        double r259556 = log(r259555);
        double r259557 = exp(r259556);
        double r259558 = r259554 ? r259552 : r259557;
        return r259558;
}

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))))) < 2476228.3530077836

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

    if 2476228.3530077836 < (* (/ 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.4

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

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

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{e^{\log 0}}\]
    5. Applied add-exp-log49.4

      \[\leadsto \frac{c0}{2 \cdot \color{blue}{e^{\log w}}} \cdot e^{\log 0}\]
    6. Applied add-exp-log49.4

      \[\leadsto \frac{c0}{\color{blue}{e^{\log 2}} \cdot e^{\log w}} \cdot e^{\log 0}\]
    7. Applied prod-exp49.4

      \[\leadsto \frac{c0}{\color{blue}{e^{\log 2 + \log w}}} \cdot e^{\log 0}\]
    8. Applied add-exp-log57.0

      \[\leadsto \frac{\color{blue}{e^{\log c0}}}{e^{\log 2 + \log w}} \cdot e^{\log 0}\]
    9. Applied div-exp57.0

      \[\leadsto \color{blue}{e^{\log c0 - \left(\log 2 + \log w\right)}} \cdot e^{\log 0}\]
    10. Applied prod-exp56.5

      \[\leadsto \color{blue}{e^{\left(\log c0 - \left(\log 2 + \log w\right)\right) + \log 0}}\]
    11. Simplified32.5

      \[\leadsto e^{\color{blue}{\log 0}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification33.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 2476228.3530077836476266384124755859375:\\ \;\;\;\;\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}:\\ \;\;\;\;e^{\log 0}\\ \end{array}\]

Reproduce

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