\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 6.851094008829388 \cdot 10^{+277}:\\
\;\;\;\;\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 r21901896 = c0;
double r21901897 = 2.0;
double r21901898 = w;
double r21901899 = r21901897 * r21901898;
double r21901900 = r21901896 / r21901899;
double r21901901 = d;
double r21901902 = r21901901 * r21901901;
double r21901903 = r21901896 * r21901902;
double r21901904 = h;
double r21901905 = r21901898 * r21901904;
double r21901906 = D;
double r21901907 = r21901906 * r21901906;
double r21901908 = r21901905 * r21901907;
double r21901909 = r21901903 / r21901908;
double r21901910 = r21901909 * r21901909;
double r21901911 = M;
double r21901912 = r21901911 * r21901911;
double r21901913 = r21901910 - r21901912;
double r21901914 = sqrt(r21901913);
double r21901915 = r21901909 + r21901914;
double r21901916 = r21901900 * r21901915;
return r21901916;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r21901917 = c0;
double r21901918 = w;
double r21901919 = 2.0;
double r21901920 = r21901918 * r21901919;
double r21901921 = r21901917 / r21901920;
double r21901922 = d;
double r21901923 = r21901922 * r21901922;
double r21901924 = r21901917 * r21901923;
double r21901925 = D;
double r21901926 = r21901925 * r21901925;
double r21901927 = h;
double r21901928 = r21901918 * r21901927;
double r21901929 = r21901926 * r21901928;
double r21901930 = r21901924 / r21901929;
double r21901931 = r21901930 * r21901930;
double r21901932 = M;
double r21901933 = r21901932 * r21901932;
double r21901934 = r21901931 - r21901933;
double r21901935 = sqrt(r21901934);
double r21901936 = r21901935 + r21901930;
double r21901937 = r21901921 * r21901936;
double r21901938 = 6.851094008829388e+277;
bool r21901939 = r21901937 <= r21901938;
double r21901940 = 0.0;
double r21901941 = r21901939 ? r21901937 : r21901940;
return r21901941;
}



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))))) < 6.851094008829388e+277Initial program 32.6
if 6.851094008829388e+277 < (* (/ 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.7
Simplified56.1
Taylor expanded around inf 34.0
Taylor expanded around -inf 32.0
Final simplification32.1
herbie shell --seed 2019119 +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))))))