\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 1.148139620531012480241636539527967342378 \cdot 10^{279}:\\
\;\;\;\;\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}:\\
\;\;\;\;c0 \cdot 0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r265470 = c0;
double r265471 = 2.0;
double r265472 = w;
double r265473 = r265471 * r265472;
double r265474 = r265470 / r265473;
double r265475 = d;
double r265476 = r265475 * r265475;
double r265477 = r265470 * r265476;
double r265478 = h;
double r265479 = r265472 * r265478;
double r265480 = D;
double r265481 = r265480 * r265480;
double r265482 = r265479 * r265481;
double r265483 = r265477 / r265482;
double r265484 = r265483 * r265483;
double r265485 = M;
double r265486 = r265485 * r265485;
double r265487 = r265484 - r265486;
double r265488 = sqrt(r265487);
double r265489 = r265483 + r265488;
double r265490 = r265474 * r265489;
return r265490;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r265491 = c0;
double r265492 = 2.0;
double r265493 = w;
double r265494 = r265492 * r265493;
double r265495 = r265491 / r265494;
double r265496 = d;
double r265497 = r265496 * r265496;
double r265498 = r265491 * r265497;
double r265499 = h;
double r265500 = r265493 * r265499;
double r265501 = D;
double r265502 = r265501 * r265501;
double r265503 = r265500 * r265502;
double r265504 = r265498 / r265503;
double r265505 = r265504 * r265504;
double r265506 = M;
double r265507 = r265506 * r265506;
double r265508 = r265505 - r265507;
double r265509 = sqrt(r265508);
double r265510 = r265504 + r265509;
double r265511 = r265495 * r265510;
double r265512 = 1.1481396205310125e+279;
bool r265513 = r265511 <= r265512;
double r265514 = 0.0;
double r265515 = r265491 * r265514;
double r265516 = r265513 ? r265511 : r265515;
return r265516;
}



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))))) < 1.1481396205310125e+279Initial program 34.3
if 1.1481396205310125e+279 < (* (/ 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
Taylor expanded around inf 33.2
rmApplied div-inv33.2
Applied associate-*l*31.2
Simplified31.2
Final simplification31.7
herbie shell --seed 2019362 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
:precision binary64
(* (/ 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))))))