\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) \le 3.551871884992187 \cdot 10^{+116}:\\
\;\;\;\;\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 r96809426 = c0;
double r96809427 = 2.0;
double r96809428 = w;
double r96809429 = r96809427 * r96809428;
double r96809430 = r96809426 / r96809429;
double r96809431 = d;
double r96809432 = r96809431 * r96809431;
double r96809433 = r96809426 * r96809432;
double r96809434 = h;
double r96809435 = r96809428 * r96809434;
double r96809436 = D;
double r96809437 = r96809436 * r96809436;
double r96809438 = r96809435 * r96809437;
double r96809439 = r96809433 / r96809438;
double r96809440 = r96809439 * r96809439;
double r96809441 = M;
double r96809442 = r96809441 * r96809441;
double r96809443 = r96809440 - r96809442;
double r96809444 = sqrt(r96809443);
double r96809445 = r96809439 + r96809444;
double r96809446 = r96809430 * r96809445;
return r96809446;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r96809447 = c0;
double r96809448 = w;
double r96809449 = 2.0;
double r96809450 = r96809448 * r96809449;
double r96809451 = r96809447 / r96809450;
double r96809452 = d;
double r96809453 = r96809452 * r96809452;
double r96809454 = r96809447 * r96809453;
double r96809455 = D;
double r96809456 = r96809455 * r96809455;
double r96809457 = h;
double r96809458 = r96809448 * r96809457;
double r96809459 = r96809456 * r96809458;
double r96809460 = r96809454 / r96809459;
double r96809461 = r96809460 * r96809460;
double r96809462 = M;
double r96809463 = r96809462 * r96809462;
double r96809464 = r96809461 - r96809463;
double r96809465 = sqrt(r96809464);
double r96809466 = r96809465 + r96809460;
double r96809467 = r96809451 * r96809466;
double r96809468 = 3.551871884992187e+116;
bool r96809469 = r96809467 <= r96809468;
double r96809470 = 0.0;
double r96809471 = r96809469 ? r96809467 : r96809470;
return r96809471;
}



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))))) < 3.551871884992187e+116Initial program 35.6
if 3.551871884992187e+116 < (* (/ 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.3
Simplified55.8
Taylor expanded around inf 33.9
Taylor expanded around -inf 31.8
Final simplification32.4
herbie shell --seed 2019125 +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))))))