\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 2.608039255478076 \cdot 10^{+261}:\\
\;\;\;\;\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 r54450313 = c0;
double r54450314 = 2.0;
double r54450315 = w;
double r54450316 = r54450314 * r54450315;
double r54450317 = r54450313 / r54450316;
double r54450318 = d;
double r54450319 = r54450318 * r54450318;
double r54450320 = r54450313 * r54450319;
double r54450321 = h;
double r54450322 = r54450315 * r54450321;
double r54450323 = D;
double r54450324 = r54450323 * r54450323;
double r54450325 = r54450322 * r54450324;
double r54450326 = r54450320 / r54450325;
double r54450327 = r54450326 * r54450326;
double r54450328 = M;
double r54450329 = r54450328 * r54450328;
double r54450330 = r54450327 - r54450329;
double r54450331 = sqrt(r54450330);
double r54450332 = r54450326 + r54450331;
double r54450333 = r54450317 * r54450332;
return r54450333;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r54450334 = c0;
double r54450335 = w;
double r54450336 = 2.0;
double r54450337 = r54450335 * r54450336;
double r54450338 = r54450334 / r54450337;
double r54450339 = d;
double r54450340 = r54450339 * r54450339;
double r54450341 = r54450334 * r54450340;
double r54450342 = D;
double r54450343 = r54450342 * r54450342;
double r54450344 = h;
double r54450345 = r54450335 * r54450344;
double r54450346 = r54450343 * r54450345;
double r54450347 = r54450341 / r54450346;
double r54450348 = r54450347 * r54450347;
double r54450349 = M;
double r54450350 = r54450349 * r54450349;
double r54450351 = r54450348 - r54450350;
double r54450352 = sqrt(r54450351);
double r54450353 = r54450352 + r54450347;
double r54450354 = r54450338 * r54450353;
double r54450355 = 2.608039255478076e+261;
bool r54450356 = r54450354 <= r54450355;
double r54450357 = 0.0;
double r54450358 = r54450356 ? r54450354 : r54450357;
return r54450358;
}



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))))) < 2.608039255478076e+261Initial program 33.7
if 2.608039255478076e+261 < (* (/ 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.7
Simplified55.1
Taylor expanded around -inf 33.5
rmApplied mul031.4
Final simplification31.8
herbie shell --seed 2019128 +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))))))