\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.5920228479822924 \cdot 10^{+232}:\\
\;\;\;\;\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}:\\
\;\;\;\;\left(0\right)\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r3575529 = c0;
double r3575530 = 2.0;
double r3575531 = w;
double r3575532 = r3575530 * r3575531;
double r3575533 = r3575529 / r3575532;
double r3575534 = d;
double r3575535 = r3575534 * r3575534;
double r3575536 = r3575529 * r3575535;
double r3575537 = h;
double r3575538 = r3575531 * r3575537;
double r3575539 = D;
double r3575540 = r3575539 * r3575539;
double r3575541 = r3575538 * r3575540;
double r3575542 = r3575536 / r3575541;
double r3575543 = r3575542 * r3575542;
double r3575544 = M;
double r3575545 = r3575544 * r3575544;
double r3575546 = r3575543 - r3575545;
double r3575547 = sqrt(r3575546);
double r3575548 = r3575542 + r3575547;
double r3575549 = r3575533 * r3575548;
return r3575549;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r3575550 = c0;
double r3575551 = w;
double r3575552 = 2.0;
double r3575553 = r3575551 * r3575552;
double r3575554 = r3575550 / r3575553;
double r3575555 = d;
double r3575556 = r3575555 * r3575555;
double r3575557 = r3575550 * r3575556;
double r3575558 = D;
double r3575559 = r3575558 * r3575558;
double r3575560 = h;
double r3575561 = r3575551 * r3575560;
double r3575562 = r3575559 * r3575561;
double r3575563 = r3575557 / r3575562;
double r3575564 = r3575563 * r3575563;
double r3575565 = M;
double r3575566 = r3575565 * r3575565;
double r3575567 = r3575564 - r3575566;
double r3575568 = sqrt(r3575567);
double r3575569 = r3575568 + r3575563;
double r3575570 = r3575554 * r3575569;
double r3575571 = 2.5920228479822924e+232;
bool r3575572 = r3575570 <= r3575571;
double r3575573 = 0.0;
double r3575574 = /* ERROR: no posit support in C */;
double r3575575 = /* ERROR: no posit support in C */;
double r3575576 = r3575572 ? r3575570 : r3575575;
return r3575576;
}



Bits error versus c0



Bits error versus w



Bits error versus h



Bits error versus D



Bits error versus d



Bits error versus M
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.5920228479822924e+232Initial program 34.1
if 2.5920228479822924e+232 < (* (/ 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.6
Simplified55.5
Taylor expanded around inf 34.2
rmApplied insert-posit1634.2
Simplified32.0
Final simplification32.4
herbie shell --seed 2019152 +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))))))