\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}{w \cdot 2} \cdot \left(\sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M} + \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)}\right) \le 9.221058218589873 \cdot 10^{+88}:\\
\;\;\;\;\frac{c0}{w \cdot 2} \cdot \left(\sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M} + \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r4587681 = c0;
double r4587682 = 2.0;
double r4587683 = w;
double r4587684 = r4587682 * r4587683;
double r4587685 = r4587681 / r4587684;
double r4587686 = d;
double r4587687 = r4587686 * r4587686;
double r4587688 = r4587681 * r4587687;
double r4587689 = h;
double r4587690 = r4587683 * r4587689;
double r4587691 = D;
double r4587692 = r4587691 * r4587691;
double r4587693 = r4587690 * r4587692;
double r4587694 = r4587688 / r4587693;
double r4587695 = r4587694 * r4587694;
double r4587696 = M;
double r4587697 = r4587696 * r4587696;
double r4587698 = r4587695 - r4587697;
double r4587699 = sqrt(r4587698);
double r4587700 = r4587694 + r4587699;
double r4587701 = r4587685 * r4587700;
return r4587701;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r4587702 = c0;
double r4587703 = w;
double r4587704 = 2.0;
double r4587705 = r4587703 * r4587704;
double r4587706 = r4587702 / r4587705;
double r4587707 = d;
double r4587708 = r4587707 * r4587707;
double r4587709 = r4587702 * r4587708;
double r4587710 = D;
double r4587711 = r4587710 * r4587710;
double r4587712 = h;
double r4587713 = r4587703 * r4587712;
double r4587714 = r4587711 * r4587713;
double r4587715 = r4587709 / r4587714;
double r4587716 = r4587715 * r4587715;
double r4587717 = M;
double r4587718 = r4587717 * r4587717;
double r4587719 = r4587716 - r4587718;
double r4587720 = sqrt(r4587719);
double r4587721 = r4587720 + r4587715;
double r4587722 = r4587706 * r4587721;
double r4587723 = 9.221058218589873e+88;
bool r4587724 = r4587722 <= r4587723;
double r4587725 = 0.0;
double r4587726 = r4587724 ? r4587722 : r4587725;
return r4587726;
}



Bits error versus c0



Bits error versus w



Bits error versus h



Bits error versus D



Bits error versus d



Bits error versus M
Results
if (* (/ 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))))) < 9.221058218589873e+88Initial program 37.0
if 9.221058218589873e+88 < (* (/ 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))))) Initial program 62.4
Simplified54.5
Taylor expanded around -inf 32.1
Final simplification32.9
herbie shell --seed 2019135 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ 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))))))