\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 2.250378991519621914334036295758019115197 \cdot 10^{263}:\\
\;\;\;\;\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 r7719965 = c0;
double r7719966 = 2.0;
double r7719967 = w;
double r7719968 = r7719966 * r7719967;
double r7719969 = r7719965 / r7719968;
double r7719970 = d;
double r7719971 = r7719970 * r7719970;
double r7719972 = r7719965 * r7719971;
double r7719973 = h;
double r7719974 = r7719967 * r7719973;
double r7719975 = D;
double r7719976 = r7719975 * r7719975;
double r7719977 = r7719974 * r7719976;
double r7719978 = r7719972 / r7719977;
double r7719979 = r7719978 * r7719978;
double r7719980 = M;
double r7719981 = r7719980 * r7719980;
double r7719982 = r7719979 - r7719981;
double r7719983 = sqrt(r7719982);
double r7719984 = r7719978 + r7719983;
double r7719985 = r7719969 * r7719984;
return r7719985;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r7719986 = c0;
double r7719987 = w;
double r7719988 = 2.0;
double r7719989 = r7719987 * r7719988;
double r7719990 = r7719986 / r7719989;
double r7719991 = d;
double r7719992 = r7719991 * r7719991;
double r7719993 = r7719986 * r7719992;
double r7719994 = D;
double r7719995 = r7719994 * r7719994;
double r7719996 = h;
double r7719997 = r7719987 * r7719996;
double r7719998 = r7719995 * r7719997;
double r7719999 = r7719993 / r7719998;
double r7720000 = r7719999 * r7719999;
double r7720001 = M;
double r7720002 = r7720001 * r7720001;
double r7720003 = r7720000 - r7720002;
double r7720004 = sqrt(r7720003);
double r7720005 = r7720004 + r7719999;
double r7720006 = r7719990 * r7720005;
double r7720007 = 2.250378991519622e+263;
bool r7720008 = r7720006 <= r7720007;
double r7720009 = 0.0;
double r7720010 = r7720008 ? r7720006 : r7720009;
return r7720010;
}



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.250378991519622e+263Initial program 33.8
if 2.250378991519622e+263 < (* (/ 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 64.0
Simplified56.5
Taylor expanded around inf 31.4
Final simplification31.8
herbie shell --seed 2019169 +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))))))