\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}\;D \le -2.4768410751898854 \cdot 10^{+36}:\\
\;\;\;\;\left(\frac{\frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{w}}{h} + \sqrt{\frac{\frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{w}}{h} + M} \cdot \sqrt{\frac{\frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{w}}{h} - M}\right) \cdot \frac{c0}{w \cdot 2}\\
\mathbf{elif}\;D \le 2.7797976866862625 \cdot 10^{+42}:\\
\;\;\;\;0\\
\mathbf{elif}\;D \le 4.721751036118839 \cdot 10^{+112}:\\
\;\;\;\;\left(\frac{\frac{1}{2}}{w} \cdot \frac{\mathsf{fma}\left(\left(\sqrt{\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} \cdot \frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} - M \cdot M}\right), \left(\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} \cdot \frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} - M \cdot M\right), \left(\left(\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} \cdot \frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}}\right) \cdot \frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}}\right)\right)}{\mathsf{fma}\left(\left(\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}}\right), \left(\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} - \sqrt{\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} \cdot \frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} - M \cdot M}\right), \left(\frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} \cdot \frac{\frac{d}{D} \cdot \frac{\frac{d}{D}}{h}}{\frac{w}{c0}} - M \cdot M\right)\right)}\right) \cdot c0\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r5735955 = c0;
double r5735956 = 2.0;
double r5735957 = w;
double r5735958 = r5735956 * r5735957;
double r5735959 = r5735955 / r5735958;
double r5735960 = d;
double r5735961 = r5735960 * r5735960;
double r5735962 = r5735955 * r5735961;
double r5735963 = h;
double r5735964 = r5735957 * r5735963;
double r5735965 = D;
double r5735966 = r5735965 * r5735965;
double r5735967 = r5735964 * r5735966;
double r5735968 = r5735962 / r5735967;
double r5735969 = r5735968 * r5735968;
double r5735970 = M;
double r5735971 = r5735970 * r5735970;
double r5735972 = r5735969 - r5735971;
double r5735973 = sqrt(r5735972);
double r5735974 = r5735968 + r5735973;
double r5735975 = r5735959 * r5735974;
return r5735975;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r5735976 = D;
double r5735977 = -2.4768410751898854e+36;
bool r5735978 = r5735976 <= r5735977;
double r5735979 = d;
double r5735980 = r5735979 / r5735976;
double r5735981 = c0;
double r5735982 = r5735981 * r5735980;
double r5735983 = r5735980 * r5735982;
double r5735984 = w;
double r5735985 = r5735983 / r5735984;
double r5735986 = h;
double r5735987 = r5735985 / r5735986;
double r5735988 = M;
double r5735989 = r5735987 + r5735988;
double r5735990 = sqrt(r5735989);
double r5735991 = r5735987 - r5735988;
double r5735992 = sqrt(r5735991);
double r5735993 = r5735990 * r5735992;
double r5735994 = r5735987 + r5735993;
double r5735995 = 2.0;
double r5735996 = r5735984 * r5735995;
double r5735997 = r5735981 / r5735996;
double r5735998 = r5735994 * r5735997;
double r5735999 = 2.7797976866862625e+42;
bool r5736000 = r5735976 <= r5735999;
double r5736001 = 0.0;
double r5736002 = 4.721751036118839e+112;
bool r5736003 = r5735976 <= r5736002;
double r5736004 = 0.5;
double r5736005 = r5736004 / r5735984;
double r5736006 = r5735980 / r5735986;
double r5736007 = r5735980 * r5736006;
double r5736008 = r5735984 / r5735981;
double r5736009 = r5736007 / r5736008;
double r5736010 = r5736009 * r5736009;
double r5736011 = r5735988 * r5735988;
double r5736012 = r5736010 - r5736011;
double r5736013 = sqrt(r5736012);
double r5736014 = r5736010 * r5736009;
double r5736015 = fma(r5736013, r5736012, r5736014);
double r5736016 = r5736009 - r5736013;
double r5736017 = fma(r5736009, r5736016, r5736012);
double r5736018 = r5736015 / r5736017;
double r5736019 = r5736005 * r5736018;
double r5736020 = r5736019 * r5735981;
double r5736021 = r5736003 ? r5736020 : r5736001;
double r5736022 = r5736000 ? r5736001 : r5736021;
double r5736023 = r5735978 ? r5735998 : r5736022;
return r5736023;
}



Bits error versus c0



Bits error versus w



Bits error versus h



Bits error versus D



Bits error versus d



Bits error versus M
if D < -2.4768410751898854e+36Initial program 56.2
Simplified43.9
rmApplied difference-of-squares43.9
Applied sqrt-prod48.3
if -2.4768410751898854e+36 < D < 2.7797976866862625e+42 or 4.721751036118839e+112 < D Initial program 58.6
Simplified52.2
Taylor expanded around -inf 31.6
if 2.7797976866862625e+42 < D < 4.721751036118839e+112Initial program 54.6
Simplified47.3
rmApplied div-inv47.4
Applied associate-*l*47.2
Simplified46.2
rmApplied flip3-+51.0
Simplified54.6
Simplified54.1
Final simplification34.8
herbie shell --seed 2019132 +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))))))