\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) = -\infty \lor \neg \left(\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 1.227496136123471417705745916826608723776 \cdot 10^{222}\right):\\
\;\;\;\;0\\
\mathbf{else}:\\
\;\;\;\;\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)\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r121876 = c0;
double r121877 = 2.0;
double r121878 = w;
double r121879 = r121877 * r121878;
double r121880 = r121876 / r121879;
double r121881 = d;
double r121882 = r121881 * r121881;
double r121883 = r121876 * r121882;
double r121884 = h;
double r121885 = r121878 * r121884;
double r121886 = D;
double r121887 = r121886 * r121886;
double r121888 = r121885 * r121887;
double r121889 = r121883 / r121888;
double r121890 = r121889 * r121889;
double r121891 = M;
double r121892 = r121891 * r121891;
double r121893 = r121890 - r121892;
double r121894 = sqrt(r121893);
double r121895 = r121889 + r121894;
double r121896 = r121880 * r121895;
return r121896;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r121897 = c0;
double r121898 = 2.0;
double r121899 = w;
double r121900 = r121898 * r121899;
double r121901 = r121897 / r121900;
double r121902 = d;
double r121903 = r121902 * r121902;
double r121904 = r121897 * r121903;
double r121905 = h;
double r121906 = r121899 * r121905;
double r121907 = D;
double r121908 = r121907 * r121907;
double r121909 = r121906 * r121908;
double r121910 = r121904 / r121909;
double r121911 = r121910 * r121910;
double r121912 = M;
double r121913 = r121912 * r121912;
double r121914 = r121911 - r121913;
double r121915 = sqrt(r121914);
double r121916 = r121910 + r121915;
double r121917 = r121901 * r121916;
double r121918 = -inf.0;
bool r121919 = r121917 <= r121918;
double r121920 = 1.2274961361234714e+222;
bool r121921 = r121917 <= r121920;
double r121922 = !r121921;
bool r121923 = r121919 || r121922;
double r121924 = 0.0;
double r121925 = r121923 ? r121924 : r121917;
return r121925;
}



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.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))))) < -inf.0 or 1.2274961361234714e+222 < (* (/ 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))))) Initial program 63.9
Taylor expanded around inf 35.3
rmApplied add-cube-cbrt35.3
Applied associate-*r*35.3
Simplified33.1
if -inf.0 < (* (/ 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.2274961361234714e+222Initial program 21.9
Final simplification31.9
herbie shell --seed 2019208 +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))))))