\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 9.130457342216852705861941549201348317224 \cdot 10^{167}:\\
\;\;\;\;\frac{c0}{w} \cdot \frac{\sqrt[3]{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} + \sqrt{\left(\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right) - M \cdot M}} \cdot \left(\sqrt[3]{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} + \sqrt{\left(\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right) - M \cdot M}} \cdot \sqrt[3]{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} + \sqrt{\left(\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right) \cdot \left(\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right) - M \cdot M}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r5975665 = c0;
double r5975666 = 2.0;
double r5975667 = w;
double r5975668 = r5975666 * r5975667;
double r5975669 = r5975665 / r5975668;
double r5975670 = d;
double r5975671 = r5975670 * r5975670;
double r5975672 = r5975665 * r5975671;
double r5975673 = h;
double r5975674 = r5975667 * r5975673;
double r5975675 = D;
double r5975676 = r5975675 * r5975675;
double r5975677 = r5975674 * r5975676;
double r5975678 = r5975672 / r5975677;
double r5975679 = r5975678 * r5975678;
double r5975680 = M;
double r5975681 = r5975680 * r5975680;
double r5975682 = r5975679 - r5975681;
double r5975683 = sqrt(r5975682);
double r5975684 = r5975678 + r5975683;
double r5975685 = r5975669 * r5975684;
return r5975685;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r5975686 = c0;
double r5975687 = w;
double r5975688 = 2.0;
double r5975689 = r5975687 * r5975688;
double r5975690 = r5975686 / r5975689;
double r5975691 = d;
double r5975692 = r5975691 * r5975691;
double r5975693 = r5975686 * r5975692;
double r5975694 = D;
double r5975695 = r5975694 * r5975694;
double r5975696 = h;
double r5975697 = r5975687 * r5975696;
double r5975698 = r5975695 * r5975697;
double r5975699 = r5975693 / r5975698;
double r5975700 = r5975699 * r5975699;
double r5975701 = M;
double r5975702 = r5975701 * r5975701;
double r5975703 = r5975700 - r5975702;
double r5975704 = sqrt(r5975703);
double r5975705 = r5975704 + r5975699;
double r5975706 = r5975690 * r5975705;
double r5975707 = 9.130457342216853e+167;
bool r5975708 = r5975706 <= r5975707;
double r5975709 = r5975686 / r5975687;
double r5975710 = r5975691 / r5975694;
double r5975711 = r5975710 * r5975710;
double r5975712 = r5975711 / r5975696;
double r5975713 = r5975709 * r5975712;
double r5975714 = r5975713 * r5975713;
double r5975715 = r5975714 - r5975702;
double r5975716 = sqrt(r5975715);
double r5975717 = r5975713 + r5975716;
double r5975718 = cbrt(r5975717);
double r5975719 = r5975718 * r5975718;
double r5975720 = r5975718 * r5975719;
double r5975721 = r5975720 / r5975688;
double r5975722 = r5975709 * r5975721;
double r5975723 = 0.0;
double r5975724 = r5975708 ? r5975722 : r5975723;
return r5975724;
}



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))))) < 9.130457342216853e+167Initial program 36.7
Simplified39.8
rmApplied add-cube-cbrt39.9
if 9.130457342216853e+167 < (* (/ 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.7
Simplified56.4
Taylor expanded around inf 33.8
Taylor expanded around 0 31.6
Final simplification32.9
herbie shell --seed 2019172 +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))))))