\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}\;w \le 5.1060876778360224 \cdot 10^{+44}:\\
\;\;\;\;\frac{0}{w} \cdot \frac{c0}{2}\\
\mathbf{elif}\;w \le 1.3340810790915187 \cdot 10^{+89}:\\
\;\;\;\;\frac{\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} + \sqrt{\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} - M} \cdot \sqrt{\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} + M}}{w} \cdot \frac{c0}{2}\\
\mathbf{elif}\;w \le 1.350659423435845 \cdot 10^{+163}:\\
\;\;\;\;\frac{0}{w} \cdot \frac{c0}{2}\\
\mathbf{elif}\;w \le 1.0915833705181084 \cdot 10^{+193}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{\frac{\sqrt[3]{\sqrt{\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) - M \cdot M} \cdot \left(\sqrt{\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) - M \cdot M} \cdot \sqrt{\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) - M \cdot M}\right)} \cdot \left(\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) - M \cdot M\right) + \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right)\right)}{\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h} - \sqrt{\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) - M \cdot M}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) + \left(\left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{\frac{w}{\frac{d}{D}}} \cdot \frac{\frac{d}{D}}{h}\right) - M \cdot M\right)}}{w}\\
\mathbf{else}:\\
\;\;\;\;\frac{0}{w} \cdot \frac{c0}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r6073710 = c0;
double r6073711 = 2.0;
double r6073712 = w;
double r6073713 = r6073711 * r6073712;
double r6073714 = r6073710 / r6073713;
double r6073715 = d;
double r6073716 = r6073715 * r6073715;
double r6073717 = r6073710 * r6073716;
double r6073718 = h;
double r6073719 = r6073712 * r6073718;
double r6073720 = D;
double r6073721 = r6073720 * r6073720;
double r6073722 = r6073719 * r6073721;
double r6073723 = r6073717 / r6073722;
double r6073724 = r6073723 * r6073723;
double r6073725 = M;
double r6073726 = r6073725 * r6073725;
double r6073727 = r6073724 - r6073726;
double r6073728 = sqrt(r6073727);
double r6073729 = r6073723 + r6073728;
double r6073730 = r6073714 * r6073729;
return r6073730;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r6073731 = w;
double r6073732 = 5.1060876778360224e+44;
bool r6073733 = r6073731 <= r6073732;
double r6073734 = 0.0;
double r6073735 = r6073734 / r6073731;
double r6073736 = c0;
double r6073737 = 2.0;
double r6073738 = r6073736 / r6073737;
double r6073739 = r6073735 * r6073738;
double r6073740 = 1.3340810790915187e+89;
bool r6073741 = r6073731 <= r6073740;
double r6073742 = d;
double r6073743 = D;
double r6073744 = r6073742 / r6073743;
double r6073745 = r6073744 * r6073736;
double r6073746 = r6073745 * r6073744;
double r6073747 = h;
double r6073748 = r6073731 * r6073747;
double r6073749 = r6073746 / r6073748;
double r6073750 = M;
double r6073751 = r6073749 - r6073750;
double r6073752 = sqrt(r6073751);
double r6073753 = r6073749 + r6073750;
double r6073754 = sqrt(r6073753);
double r6073755 = r6073752 * r6073754;
double r6073756 = r6073749 + r6073755;
double r6073757 = r6073756 / r6073731;
double r6073758 = r6073757 * r6073738;
double r6073759 = 1.350659423435845e+163;
bool r6073760 = r6073731 <= r6073759;
double r6073761 = 1.0915833705181084e+193;
bool r6073762 = r6073731 <= r6073761;
double r6073763 = r6073731 / r6073744;
double r6073764 = r6073736 / r6073763;
double r6073765 = r6073744 / r6073747;
double r6073766 = r6073764 * r6073765;
double r6073767 = r6073766 * r6073766;
double r6073768 = r6073750 * r6073750;
double r6073769 = r6073767 - r6073768;
double r6073770 = sqrt(r6073769);
double r6073771 = r6073770 * r6073770;
double r6073772 = r6073770 * r6073771;
double r6073773 = cbrt(r6073772);
double r6073774 = r6073773 * r6073769;
double r6073775 = r6073766 * r6073767;
double r6073776 = r6073774 + r6073775;
double r6073777 = r6073766 - r6073770;
double r6073778 = r6073777 * r6073766;
double r6073779 = r6073778 + r6073769;
double r6073780 = r6073776 / r6073779;
double r6073781 = r6073780 / r6073731;
double r6073782 = r6073738 * r6073781;
double r6073783 = r6073762 ? r6073782 : r6073739;
double r6073784 = r6073760 ? r6073739 : r6073783;
double r6073785 = r6073741 ? r6073758 : r6073784;
double r6073786 = r6073733 ? r6073739 : r6073785;
return r6073786;
}



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 w < 5.1060876778360224e+44 or 1.3340810790915187e+89 < w < 1.350659423435845e+163 or 1.0915833705181084e+193 < w Initial program 58.3
Simplified52.3
rmApplied flip3-+55.6
Simplified56.2
Simplified54.3
Taylor expanded around inf 33.9
if 5.1060876778360224e+44 < w < 1.3340810790915187e+89Initial program 55.2
Simplified47.7
rmApplied sqrt-prod48.4
if 1.350659423435845e+163 < w < 1.0915833705181084e+193Initial program 58.1
Simplified50.2
rmApplied flip3-+52.5
Simplified53.1
Simplified48.8
rmApplied add-cbrt-cube50.1
Final simplification34.8
herbie shell --seed 2019151
(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))))))