\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 5.939879892392706 \cdot 10^{-39}:\\
\;\;\;\;\frac{\sqrt[3]{\left(\sqrt{\left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} + M\right) \cdot \left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} - M\right)} + \frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h}\right) \cdot \left(\left(\sqrt{\left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} + M\right) \cdot \left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} - M\right)} + \frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h}\right) \cdot \left(\sqrt{\left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} + M\right) \cdot \left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} - M\right)} + \frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h}\right)\right)} \cdot \frac{c0}{w}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} + \sqrt{\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} + M} \cdot \sqrt{\frac{\left(\frac{c0}{w} \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h} - M}\right) \cdot \frac{c0}{w}}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r4409366 = c0;
double r4409367 = 2.0;
double r4409368 = w;
double r4409369 = r4409367 * r4409368;
double r4409370 = r4409366 / r4409369;
double r4409371 = d;
double r4409372 = r4409371 * r4409371;
double r4409373 = r4409366 * r4409372;
double r4409374 = h;
double r4409375 = r4409368 * r4409374;
double r4409376 = D;
double r4409377 = r4409376 * r4409376;
double r4409378 = r4409375 * r4409377;
double r4409379 = r4409373 / r4409378;
double r4409380 = r4409379 * r4409379;
double r4409381 = M;
double r4409382 = r4409381 * r4409381;
double r4409383 = r4409380 - r4409382;
double r4409384 = sqrt(r4409383);
double r4409385 = r4409379 + r4409384;
double r4409386 = r4409370 * r4409385;
return r4409386;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r4409387 = M;
double r4409388 = r4409387 * r4409387;
double r4409389 = 5.939879892392706e-39;
bool r4409390 = r4409388 <= r4409389;
double r4409391 = c0;
double r4409392 = w;
double r4409393 = r4409391 / r4409392;
double r4409394 = d;
double r4409395 = D;
double r4409396 = r4409394 / r4409395;
double r4409397 = r4409393 * r4409396;
double r4409398 = r4409397 * r4409396;
double r4409399 = h;
double r4409400 = r4409398 / r4409399;
double r4409401 = r4409400 + r4409387;
double r4409402 = r4409400 - r4409387;
double r4409403 = r4409401 * r4409402;
double r4409404 = sqrt(r4409403);
double r4409405 = r4409404 + r4409400;
double r4409406 = r4409405 * r4409405;
double r4409407 = r4409405 * r4409406;
double r4409408 = cbrt(r4409407);
double r4409409 = r4409408 * r4409393;
double r4409410 = 2.0;
double r4409411 = r4409409 / r4409410;
double r4409412 = sqrt(r4409401);
double r4409413 = sqrt(r4409402);
double r4409414 = r4409412 * r4409413;
double r4409415 = r4409400 + r4409414;
double r4409416 = r4409415 * r4409393;
double r4409417 = r4409416 / r4409410;
double r4409418 = r4409390 ? r4409411 : r4409417;
return r4409418;
}



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) < 5.939879892392706e-39Initial program 55.8
Simplified47.3
rmApplied associate-*r*48.9
rmApplied associate-*r*48.3
rmApplied add-cbrt-cube50.0
Simplified45.8
if 5.939879892392706e-39 < (* M M) Initial program 61.7
Simplified60.4
rmApplied associate-*r*60.4
rmApplied associate-*r*60.4
rmApplied sqrt-prod58.2
Simplified57.3
Final simplification50.1
herbie shell --seed 2019133
(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))))))