\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 1.2173066683804295 \cdot 10^{+57}:\\
\;\;\;\;\frac{0 \cdot \frac{c0}{w}}{2}\\
\mathbf{elif}\;d \le 1.6307146242092196 \cdot 10^{+109}:\\
\;\;\;\;\frac{\frac{c0}{w} \cdot \left(\sqrt{\frac{\frac{d}{D} \cdot \frac{c0}{w}}{\frac{h}{\frac{d}{D}}} - M} \cdot \sqrt{M + \frac{\frac{d}{D} \cdot \frac{c0}{w}}{\frac{h}{\frac{d}{D}}}} + \frac{\frac{d}{D} \cdot \frac{c0}{w}}{\frac{h}{\frac{d}{D}}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{0 \cdot \frac{c0}{w}}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r4786745 = c0;
double r4786746 = 2.0;
double r4786747 = w;
double r4786748 = r4786746 * r4786747;
double r4786749 = r4786745 / r4786748;
double r4786750 = d;
double r4786751 = r4786750 * r4786750;
double r4786752 = r4786745 * r4786751;
double r4786753 = h;
double r4786754 = r4786747 * r4786753;
double r4786755 = D;
double r4786756 = r4786755 * r4786755;
double r4786757 = r4786754 * r4786756;
double r4786758 = r4786752 / r4786757;
double r4786759 = r4786758 * r4786758;
double r4786760 = M;
double r4786761 = r4786760 * r4786760;
double r4786762 = r4786759 - r4786761;
double r4786763 = sqrt(r4786762);
double r4786764 = r4786758 + r4786763;
double r4786765 = r4786749 * r4786764;
return r4786765;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r4786766 = d;
double r4786767 = 1.2173066683804295e+57;
bool r4786768 = r4786766 <= r4786767;
double r4786769 = 0.0;
double r4786770 = c0;
double r4786771 = w;
double r4786772 = r4786770 / r4786771;
double r4786773 = r4786769 * r4786772;
double r4786774 = 2.0;
double r4786775 = r4786773 / r4786774;
double r4786776 = 1.6307146242092196e+109;
bool r4786777 = r4786766 <= r4786776;
double r4786778 = D;
double r4786779 = r4786766 / r4786778;
double r4786780 = r4786779 * r4786772;
double r4786781 = h;
double r4786782 = r4786781 / r4786779;
double r4786783 = r4786780 / r4786782;
double r4786784 = M;
double r4786785 = r4786783 - r4786784;
double r4786786 = sqrt(r4786785);
double r4786787 = r4786784 + r4786783;
double r4786788 = sqrt(r4786787);
double r4786789 = r4786786 * r4786788;
double r4786790 = r4786789 + r4786783;
double r4786791 = r4786772 * r4786790;
double r4786792 = r4786791 / r4786774;
double r4786793 = r4786777 ? r4786792 : r4786775;
double r4786794 = r4786768 ? r4786775 : r4786793;
return r4786794;
}



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 d < 1.2173066683804295e+57 or 1.6307146242092196e+109 < d Initial program 58.2
Simplified52.6
rmApplied associate-*r*53.2
rmApplied *-un-lft-identity53.2
Applied *-un-lft-identity53.2
Applied distribute-lft-out53.2
Simplified50.1
Taylor expanded around -inf 35.1
if 1.2173066683804295e+57 < d < 1.6307146242092196e+109Initial program 54.8
Simplified53.0
rmApplied associate-*r*54.0
rmApplied *-un-lft-identity54.0
Applied *-un-lft-identity54.0
Applied distribute-lft-out54.0
Simplified50.1
rmApplied difference-of-squares50.0
Applied sqrt-prod52.7
Final simplification36.1
herbie shell --seed 2019134
(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))))))