\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 3.9339264335359494 \cdot 10^{+223}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{\frac{c0 \cdot \frac{d}{D}}{\frac{w \cdot h}{\frac{d}{D}}} + \sqrt{\left(\frac{c0 \cdot \frac{d}{D}}{\frac{w \cdot h}{\frac{d}{D}}} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{w \cdot h}\right)}}{w}\\
\mathbf{else}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{0}{w}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r7571949 = c0;
double r7571950 = 2.0;
double r7571951 = w;
double r7571952 = r7571950 * r7571951;
double r7571953 = r7571949 / r7571952;
double r7571954 = d;
double r7571955 = r7571954 * r7571954;
double r7571956 = r7571949 * r7571955;
double r7571957 = h;
double r7571958 = r7571951 * r7571957;
double r7571959 = D;
double r7571960 = r7571959 * r7571959;
double r7571961 = r7571958 * r7571960;
double r7571962 = r7571956 / r7571961;
double r7571963 = r7571962 * r7571962;
double r7571964 = M;
double r7571965 = r7571964 * r7571964;
double r7571966 = r7571963 - r7571965;
double r7571967 = sqrt(r7571966);
double r7571968 = r7571962 + r7571967;
double r7571969 = r7571953 * r7571968;
return r7571969;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r7571970 = c0;
double r7571971 = w;
double r7571972 = 2.0;
double r7571973 = r7571971 * r7571972;
double r7571974 = r7571970 / r7571973;
double r7571975 = d;
double r7571976 = r7571975 * r7571975;
double r7571977 = r7571970 * r7571976;
double r7571978 = D;
double r7571979 = r7571978 * r7571978;
double r7571980 = h;
double r7571981 = r7571971 * r7571980;
double r7571982 = r7571979 * r7571981;
double r7571983 = r7571977 / r7571982;
double r7571984 = r7571983 * r7571983;
double r7571985 = M;
double r7571986 = r7571985 * r7571985;
double r7571987 = r7571984 - r7571986;
double r7571988 = sqrt(r7571987);
double r7571989 = r7571988 + r7571983;
double r7571990 = r7571974 * r7571989;
double r7571991 = 3.9339264335359494e+223;
bool r7571992 = r7571990 <= r7571991;
double r7571993 = r7571970 / r7571972;
double r7571994 = r7571975 / r7571978;
double r7571995 = r7571970 * r7571994;
double r7571996 = r7571981 / r7571994;
double r7571997 = r7571995 / r7571996;
double r7571998 = r7571997 - r7571985;
double r7571999 = r7571994 * r7571995;
double r7572000 = r7571999 / r7571981;
double r7572001 = r7571985 + r7572000;
double r7572002 = r7571998 * r7572001;
double r7572003 = sqrt(r7572002);
double r7572004 = r7571997 + r7572003;
double r7572005 = r7572004 / r7571971;
double r7572006 = r7571993 * r7572005;
double r7572007 = 0.0;
double r7572008 = r7572007 / r7571971;
double r7572009 = r7571993 * r7572008;
double r7572010 = r7571992 ? r7572006 : r7572009;
return r7572010;
}



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))))) < 3.9339264335359494e+223Initial program 35.3
Simplified34.2
rmApplied associate-/l*35.6
rmApplied associate-/l*35.2
if 3.9339264335359494e+223 < (* (/ 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.6
Simplified55.9
rmApplied associate-/l*56.1
rmApplied *-un-lft-identity56.1
Applied *-un-lft-identity56.1
Applied distribute-lft-out56.1
Simplified55.9
Taylor expanded around inf 32.3
Final simplification32.8
herbie shell --seed 2019163
(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))))))