\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 3.59339556793099782905505395424773047473 \cdot 10^{241}:\\
\;\;\;\;\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 r6179961 = c0;
double r6179962 = 2.0;
double r6179963 = w;
double r6179964 = r6179962 * r6179963;
double r6179965 = r6179961 / r6179964;
double r6179966 = d;
double r6179967 = r6179966 * r6179966;
double r6179968 = r6179961 * r6179967;
double r6179969 = h;
double r6179970 = r6179963 * r6179969;
double r6179971 = D;
double r6179972 = r6179971 * r6179971;
double r6179973 = r6179970 * r6179972;
double r6179974 = r6179968 / r6179973;
double r6179975 = r6179974 * r6179974;
double r6179976 = M;
double r6179977 = r6179976 * r6179976;
double r6179978 = r6179975 - r6179977;
double r6179979 = sqrt(r6179978);
double r6179980 = r6179974 + r6179979;
double r6179981 = r6179965 * r6179980;
return r6179981;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r6179982 = c0;
double r6179983 = 2.0;
double r6179984 = w;
double r6179985 = r6179983 * r6179984;
double r6179986 = r6179982 / r6179985;
double r6179987 = d;
double r6179988 = r6179987 * r6179987;
double r6179989 = r6179982 * r6179988;
double r6179990 = h;
double r6179991 = r6179984 * r6179990;
double r6179992 = D;
double r6179993 = r6179992 * r6179992;
double r6179994 = r6179991 * r6179993;
double r6179995 = r6179989 / r6179994;
double r6179996 = r6179995 * r6179995;
double r6179997 = M;
double r6179998 = r6179997 * r6179997;
double r6179999 = r6179996 - r6179998;
double r6180000 = sqrt(r6179999);
double r6180001 = r6179995 + r6180000;
double r6180002 = r6179986 * r6180001;
double r6180003 = 3.593395567930998e+241;
bool r6180004 = r6180002 <= r6180003;
double r6180005 = 0.0;
double r6180006 = r6180004 ? r6180002 : r6180005;
return r6180006;
}



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))))) < 3.593395567930998e+241Initial program 34.1
if 3.593395567930998e+241 < (* (/ 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
Simplified57.6
Taylor expanded around inf 34.3
rmApplied mul031.9
Final simplification32.3
herbie shell --seed 2019174 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ 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))))))