\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 2.328396794559237121721792157708829575386 \cdot 10^{236}:\\
\;\;\;\;\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}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r209032 = c0;
double r209033 = 2.0;
double r209034 = w;
double r209035 = r209033 * r209034;
double r209036 = r209032 / r209035;
double r209037 = d;
double r209038 = r209037 * r209037;
double r209039 = r209032 * r209038;
double r209040 = h;
double r209041 = r209034 * r209040;
double r209042 = D;
double r209043 = r209042 * r209042;
double r209044 = r209041 * r209043;
double r209045 = r209039 / r209044;
double r209046 = r209045 * r209045;
double r209047 = M;
double r209048 = r209047 * r209047;
double r209049 = r209046 - r209048;
double r209050 = sqrt(r209049);
double r209051 = r209045 + r209050;
double r209052 = r209036 * r209051;
return r209052;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r209053 = c0;
double r209054 = 2.0;
double r209055 = w;
double r209056 = r209054 * r209055;
double r209057 = r209053 / r209056;
double r209058 = d;
double r209059 = r209058 * r209058;
double r209060 = r209053 * r209059;
double r209061 = h;
double r209062 = r209055 * r209061;
double r209063 = D;
double r209064 = r209063 * r209063;
double r209065 = r209062 * r209064;
double r209066 = r209060 / r209065;
double r209067 = r209066 * r209066;
double r209068 = M;
double r209069 = r209068 * r209068;
double r209070 = r209067 - r209069;
double r209071 = sqrt(r209070);
double r209072 = r209066 + r209071;
double r209073 = r209057 * r209072;
double r209074 = 2.328396794559237e+236;
bool r209075 = r209073 <= r209074;
double r209076 = 0.0;
double r209077 = r209075 ? r209073 : r209076;
return r209077;
}



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))))) < 2.328396794559237e+236Initial program 36.2
if 2.328396794559237e+236 < (* (/ 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 33.6
rmApplied add-sqr-sqrt33.6
Applied associate-*r*33.6
Simplified31.4
Final simplification32.2
herbie shell --seed 2019304
(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))))))