\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 4.369340549676101 \cdot 10^{+166}:\\
\;\;\;\;\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)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r45493595 = c0;
double r45493596 = 2.0;
double r45493597 = w;
double r45493598 = r45493596 * r45493597;
double r45493599 = r45493595 / r45493598;
double r45493600 = d;
double r45493601 = r45493600 * r45493600;
double r45493602 = r45493595 * r45493601;
double r45493603 = h;
double r45493604 = r45493597 * r45493603;
double r45493605 = D;
double r45493606 = r45493605 * r45493605;
double r45493607 = r45493604 * r45493606;
double r45493608 = r45493602 / r45493607;
double r45493609 = r45493608 * r45493608;
double r45493610 = M;
double r45493611 = r45493610 * r45493610;
double r45493612 = r45493609 - r45493611;
double r45493613 = sqrt(r45493612);
double r45493614 = r45493608 + r45493613;
double r45493615 = r45493599 * r45493614;
return r45493615;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r45493616 = c0;
double r45493617 = w;
double r45493618 = 2.0;
double r45493619 = r45493617 * r45493618;
double r45493620 = r45493616 / r45493619;
double r45493621 = d;
double r45493622 = r45493621 * r45493621;
double r45493623 = r45493616 * r45493622;
double r45493624 = D;
double r45493625 = r45493624 * r45493624;
double r45493626 = h;
double r45493627 = r45493617 * r45493626;
double r45493628 = r45493625 * r45493627;
double r45493629 = r45493623 / r45493628;
double r45493630 = r45493629 * r45493629;
double r45493631 = M;
double r45493632 = r45493631 * r45493631;
double r45493633 = r45493630 - r45493632;
double r45493634 = sqrt(r45493633);
double r45493635 = r45493634 + r45493629;
double r45493636 = r45493620 * r45493635;
double r45493637 = 4.369340549676101e+166;
bool r45493638 = r45493636 <= r45493637;
double r45493639 = 0.0;
double r45493640 = r45493638 ? r45493636 : r45493639;
return r45493640;
}



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 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))))) < 4.369340549676101e+166Initial program 35.3
if 4.369340549676101e+166 < (* (/ 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))))) Initial program 62.5
Simplified55.5
Taylor expanded around inf 33.5
Taylor expanded around 0 31.5
Final simplification32.1
herbie shell --seed 2019112 +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))))))