\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 \cdot D \le 2.16684159964400191720754917166912537377 \cdot 10^{302}:\\
\;\;\;\;\frac{0}{w} \cdot \frac{c0}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\frac{\frac{\frac{d}{D}}{\frac{h}{\frac{d}{D} \cdot c0}}}{w} \cdot \left(\frac{\frac{1}{\frac{h}{\frac{d}{D} \cdot c0}}}{\sqrt[3]{w}} \cdot \frac{\frac{d}{D}}{\sqrt[3]{w} \cdot \sqrt[3]{w}}\right) - M \cdot M} + \frac{\frac{\frac{d}{D}}{\frac{h}{\frac{d}{D} \cdot c0}}}{w}}{w} \cdot \frac{c0}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r9970346 = c0;
double r9970347 = 2.0;
double r9970348 = w;
double r9970349 = r9970347 * r9970348;
double r9970350 = r9970346 / r9970349;
double r9970351 = d;
double r9970352 = r9970351 * r9970351;
double r9970353 = r9970346 * r9970352;
double r9970354 = h;
double r9970355 = r9970348 * r9970354;
double r9970356 = D;
double r9970357 = r9970356 * r9970356;
double r9970358 = r9970355 * r9970357;
double r9970359 = r9970353 / r9970358;
double r9970360 = r9970359 * r9970359;
double r9970361 = M;
double r9970362 = r9970361 * r9970361;
double r9970363 = r9970360 - r9970362;
double r9970364 = sqrt(r9970363);
double r9970365 = r9970359 + r9970364;
double r9970366 = r9970350 * r9970365;
return r9970366;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r9970367 = D;
double r9970368 = r9970367 * r9970367;
double r9970369 = 2.166841599644002e+302;
bool r9970370 = r9970368 <= r9970369;
double r9970371 = 0.0;
double r9970372 = w;
double r9970373 = r9970371 / r9970372;
double r9970374 = c0;
double r9970375 = 2.0;
double r9970376 = r9970374 / r9970375;
double r9970377 = r9970373 * r9970376;
double r9970378 = d;
double r9970379 = r9970378 / r9970367;
double r9970380 = h;
double r9970381 = r9970379 * r9970374;
double r9970382 = r9970380 / r9970381;
double r9970383 = r9970379 / r9970382;
double r9970384 = r9970383 / r9970372;
double r9970385 = 1.0;
double r9970386 = r9970385 / r9970382;
double r9970387 = cbrt(r9970372);
double r9970388 = r9970386 / r9970387;
double r9970389 = r9970387 * r9970387;
double r9970390 = r9970379 / r9970389;
double r9970391 = r9970388 * r9970390;
double r9970392 = r9970384 * r9970391;
double r9970393 = M;
double r9970394 = r9970393 * r9970393;
double r9970395 = r9970392 - r9970394;
double r9970396 = sqrt(r9970395);
double r9970397 = r9970396 + r9970384;
double r9970398 = r9970397 / r9970372;
double r9970399 = r9970398 * r9970376;
double r9970400 = r9970370 ? r9970377 : r9970399;
return r9970400;
}



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 D) < 2.166841599644002e+302Initial program 58.8
Simplified53.7
rmApplied associate-/l*54.2
rmApplied *-un-lft-identity54.2
Applied *-un-lft-identity54.2
Applied distribute-lft-out54.2
Simplified52.7
Taylor expanded around inf 32.3
if 2.166841599644002e+302 < (* D D) Initial program 62.5
Simplified46.5
rmApplied associate-/l*47.0
rmApplied *-un-lft-identity47.0
Applied *-un-lft-identity47.0
Applied distribute-lft-out47.0
Simplified45.2
rmApplied add-cube-cbrt48.1
Applied div-inv48.1
Applied times-frac47.9
Final simplification34.0
herbie shell --seed 2019168
(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))))))