\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}\;M \cdot M \le 6.539679960660537 \cdot 10^{-26}:\\
\;\;\;\;\frac{\sqrt{\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{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{h \cdot w}} \cdot \sqrt{\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{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{h \cdot w}}}{w} \cdot \frac{c0}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{h \cdot w} + M} \cdot \sqrt{\frac{c0 \cdot \frac{d}{D}}{\frac{h \cdot w}{\frac{d}{D}}} - M} + \frac{\frac{d}{D} \cdot \left(c0 \cdot \frac{d}{D}\right)}{h \cdot w}}{w} \cdot \frac{c0}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r5852088 = c0;
double r5852089 = 2.0;
double r5852090 = w;
double r5852091 = r5852089 * r5852090;
double r5852092 = r5852088 / r5852091;
double r5852093 = d;
double r5852094 = r5852093 * r5852093;
double r5852095 = r5852088 * r5852094;
double r5852096 = h;
double r5852097 = r5852090 * r5852096;
double r5852098 = D;
double r5852099 = r5852098 * r5852098;
double r5852100 = r5852097 * r5852099;
double r5852101 = r5852095 / r5852100;
double r5852102 = r5852101 * r5852101;
double r5852103 = M;
double r5852104 = r5852103 * r5852103;
double r5852105 = r5852102 - r5852104;
double r5852106 = sqrt(r5852105);
double r5852107 = r5852101 + r5852106;
double r5852108 = r5852092 * r5852107;
return r5852108;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r5852109 = M;
double r5852110 = r5852109 * r5852109;
double r5852111 = 6.539679960660537e-26;
bool r5852112 = r5852110 <= r5852111;
double r5852113 = d;
double r5852114 = D;
double r5852115 = r5852113 / r5852114;
double r5852116 = c0;
double r5852117 = r5852116 * r5852115;
double r5852118 = r5852115 * r5852117;
double r5852119 = h;
double r5852120 = w;
double r5852121 = r5852119 * r5852120;
double r5852122 = r5852118 / r5852121;
double r5852123 = r5852122 + r5852109;
double r5852124 = r5852122 - r5852109;
double r5852125 = r5852123 * r5852124;
double r5852126 = sqrt(r5852125);
double r5852127 = r5852126 + r5852122;
double r5852128 = sqrt(r5852127);
double r5852129 = r5852128 * r5852128;
double r5852130 = r5852129 / r5852120;
double r5852131 = 2.0;
double r5852132 = r5852116 / r5852131;
double r5852133 = r5852130 * r5852132;
double r5852134 = sqrt(r5852123);
double r5852135 = r5852121 / r5852115;
double r5852136 = r5852117 / r5852135;
double r5852137 = r5852136 - r5852109;
double r5852138 = sqrt(r5852137);
double r5852139 = r5852134 * r5852138;
double r5852140 = r5852139 + r5852122;
double r5852141 = r5852140 / r5852120;
double r5852142 = r5852141 * r5852132;
double r5852143 = r5852112 ? r5852133 : r5852142;
return r5852143;
}



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 (* M M) < 6.539679960660537e-26Initial program 56.2
Simplified47.2
rmApplied add-sqr-sqrt47.8
if 6.539679960660537e-26 < (* M M) Initial program 61.6
Simplified60.2
rmApplied associate-/l*60.2
rmApplied sqrt-prod58.7
Final simplification51.8
herbie shell --seed 2019144
(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))))))