\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) = -\infty:\\
\;\;\;\;0\\
\mathbf{elif}\;\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 7.494039133869671 \cdot 10^{+266}:\\
\;\;\;\;\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 r12242096 = c0;
double r12242097 = 2.0;
double r12242098 = w;
double r12242099 = r12242097 * r12242098;
double r12242100 = r12242096 / r12242099;
double r12242101 = d;
double r12242102 = r12242101 * r12242101;
double r12242103 = r12242096 * r12242102;
double r12242104 = h;
double r12242105 = r12242098 * r12242104;
double r12242106 = D;
double r12242107 = r12242106 * r12242106;
double r12242108 = r12242105 * r12242107;
double r12242109 = r12242103 / r12242108;
double r12242110 = r12242109 * r12242109;
double r12242111 = M;
double r12242112 = r12242111 * r12242111;
double r12242113 = r12242110 - r12242112;
double r12242114 = sqrt(r12242113);
double r12242115 = r12242109 + r12242114;
double r12242116 = r12242100 * r12242115;
return r12242116;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r12242117 = c0;
double r12242118 = w;
double r12242119 = 2.0;
double r12242120 = r12242118 * r12242119;
double r12242121 = r12242117 / r12242120;
double r12242122 = d;
double r12242123 = r12242122 * r12242122;
double r12242124 = r12242117 * r12242123;
double r12242125 = D;
double r12242126 = r12242125 * r12242125;
double r12242127 = h;
double r12242128 = r12242118 * r12242127;
double r12242129 = r12242126 * r12242128;
double r12242130 = r12242124 / r12242129;
double r12242131 = r12242130 * r12242130;
double r12242132 = M;
double r12242133 = r12242132 * r12242132;
double r12242134 = r12242131 - r12242133;
double r12242135 = sqrt(r12242134);
double r12242136 = r12242135 + r12242130;
double r12242137 = r12242121 * r12242136;
double r12242138 = -inf.0;
bool r12242139 = r12242137 <= r12242138;
double r12242140 = 0.0;
double r12242141 = 7.494039133869671e+266;
bool r12242142 = r12242137 <= r12242141;
double r12242143 = r12242142 ? r12242137 : r12242140;
double r12242144 = r12242139 ? r12242140 : r12242143;
return r12242144;
}



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))))) < -inf.0 or 7.494039133869671e+266 < (* (/ 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.6
Simplified56.3
Taylor expanded around -inf 34.9
Taylor expanded around inf 33.0
if -inf.0 < (* (/ 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))))) < 7.494039133869671e+266Initial program 21.5
Final simplification31.7
herbie shell --seed 2019124 +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))))))