\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.1915796734409398 \cdot 10^{+31}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{0}{w}\\
\mathbf{elif}\;d \le -1.3791872014049456 \cdot 10^{-34}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{\sqrt{\left(\frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{h \cdot w} - M\right) \cdot \left(\frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{h \cdot w} + M\right)} + \frac{c0 \cdot \frac{d}{D}}{\frac{h \cdot w}{\frac{d}{D}}}}{w}\\
\mathbf{elif}\;d \le 2.9331498702830513 \cdot 10^{-09}:\\
\;\;\;\;\frac{\frac{M \cdot M}{\frac{\frac{d}{D}}{h} \cdot \frac{c0 \cdot \frac{d}{D}}{w} - \sqrt{\left(\frac{\frac{d}{D}}{h} \cdot \frac{c0 \cdot \frac{d}{D}}{w}\right) \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{c0 \cdot \frac{d}{D}}{w}\right) - M \cdot M}}}{w} \cdot \frac{c0}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{0}{w}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r5485677 = c0;
double r5485678 = 2.0;
double r5485679 = w;
double r5485680 = r5485678 * r5485679;
double r5485681 = r5485677 / r5485680;
double r5485682 = d;
double r5485683 = r5485682 * r5485682;
double r5485684 = r5485677 * r5485683;
double r5485685 = h;
double r5485686 = r5485679 * r5485685;
double r5485687 = D;
double r5485688 = r5485687 * r5485687;
double r5485689 = r5485686 * r5485688;
double r5485690 = r5485684 / r5485689;
double r5485691 = r5485690 * r5485690;
double r5485692 = M;
double r5485693 = r5485692 * r5485692;
double r5485694 = r5485691 - r5485693;
double r5485695 = sqrt(r5485694);
double r5485696 = r5485690 + r5485695;
double r5485697 = r5485681 * r5485696;
return r5485697;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r5485698 = d;
double r5485699 = -1.1915796734409398e+31;
bool r5485700 = r5485698 <= r5485699;
double r5485701 = c0;
double r5485702 = 2.0;
double r5485703 = r5485701 / r5485702;
double r5485704 = 0.0;
double r5485705 = w;
double r5485706 = r5485704 / r5485705;
double r5485707 = r5485703 * r5485706;
double r5485708 = -1.3791872014049456e-34;
bool r5485709 = r5485698 <= r5485708;
double r5485710 = D;
double r5485711 = r5485698 / r5485710;
double r5485712 = r5485701 * r5485711;
double r5485713 = r5485711 * r5485712;
double r5485714 = h;
double r5485715 = r5485714 * r5485705;
double r5485716 = r5485713 / r5485715;
double r5485717 = M;
double r5485718 = r5485716 - r5485717;
double r5485719 = r5485716 + r5485717;
double r5485720 = r5485718 * r5485719;
double r5485721 = sqrt(r5485720);
double r5485722 = r5485715 / r5485711;
double r5485723 = r5485712 / r5485722;
double r5485724 = r5485721 + r5485723;
double r5485725 = r5485724 / r5485705;
double r5485726 = r5485703 * r5485725;
double r5485727 = 2.9331498702830513e-09;
bool r5485728 = r5485698 <= r5485727;
double r5485729 = r5485717 * r5485717;
double r5485730 = r5485711 / r5485714;
double r5485731 = r5485712 / r5485705;
double r5485732 = r5485730 * r5485731;
double r5485733 = r5485732 * r5485732;
double r5485734 = r5485733 - r5485729;
double r5485735 = sqrt(r5485734);
double r5485736 = r5485732 - r5485735;
double r5485737 = r5485729 / r5485736;
double r5485738 = r5485737 / r5485705;
double r5485739 = r5485738 * r5485703;
double r5485740 = r5485728 ? r5485739 : r5485707;
double r5485741 = r5485709 ? r5485726 : r5485740;
double r5485742 = r5485700 ? r5485707 : r5485741;
return r5485742;
}



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.1915796734409398e+31 or 2.9331498702830513e-09 < d Initial program 59.0
Simplified54.3
rmApplied associate-/l*54.7
rmApplied *-un-lft-identity54.7
Applied *-un-lft-identity54.7
Applied distribute-lft-out54.7
Simplified52.6
Taylor expanded around inf 30.4
if -1.1915796734409398e+31 < d < -1.3791872014049456e-34Initial program 51.6
Simplified48.1
rmApplied associate-/l*50.0
if -1.3791872014049456e-34 < d < 2.9331498702830513e-09Initial program 57.3
Simplified46.9
rmApplied associate-/l*47.6
rmApplied *-un-lft-identity47.6
Applied *-un-lft-identity47.6
Applied distribute-lft-out47.6
Simplified44.5
rmApplied flip-+55.5
Simplified37.8
Final simplification33.7
herbie shell --seed 2019168
(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))))))