\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}{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) \le 3.59339556793099782905505395424773047473 \cdot 10^{241}:\\
\;\;\;\;\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)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r7972276 = c0;
double r7972277 = 2.0;
double r7972278 = w;
double r7972279 = r7972277 * r7972278;
double r7972280 = r7972276 / r7972279;
double r7972281 = d;
double r7972282 = r7972281 * r7972281;
double r7972283 = r7972276 * r7972282;
double r7972284 = h;
double r7972285 = r7972278 * r7972284;
double r7972286 = D;
double r7972287 = r7972286 * r7972286;
double r7972288 = r7972285 * r7972287;
double r7972289 = r7972283 / r7972288;
double r7972290 = r7972289 * r7972289;
double r7972291 = M;
double r7972292 = r7972291 * r7972291;
double r7972293 = r7972290 - r7972292;
double r7972294 = sqrt(r7972293);
double r7972295 = r7972289 + r7972294;
double r7972296 = r7972280 * r7972295;
return r7972296;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r7972297 = c0;
double r7972298 = 2.0;
double r7972299 = w;
double r7972300 = r7972298 * r7972299;
double r7972301 = r7972297 / r7972300;
double r7972302 = d;
double r7972303 = r7972302 * r7972302;
double r7972304 = r7972297 * r7972303;
double r7972305 = h;
double r7972306 = r7972299 * r7972305;
double r7972307 = D;
double r7972308 = r7972307 * r7972307;
double r7972309 = r7972306 * r7972308;
double r7972310 = r7972304 / r7972309;
double r7972311 = r7972310 * r7972310;
double r7972312 = M;
double r7972313 = r7972312 * r7972312;
double r7972314 = r7972311 - r7972313;
double r7972315 = sqrt(r7972314);
double r7972316 = r7972310 + r7972315;
double r7972317 = r7972301 * r7972316;
double r7972318 = 3.593395567930998e+241;
bool r7972319 = r7972317 <= r7972318;
double r7972320 = 0.0;
double r7972321 = r7972319 ? r7972317 : r7972320;
return r7972321;
}



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))))) < 3.593395567930998e+241Initial program 34.1
if 3.593395567930998e+241 < (* (/ 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.9
Simplified57.6
Taylor expanded around inf 34.3
Taylor expanded around 0 31.9
Final simplification32.3
herbie shell --seed 2019174
(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))))))