\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.2061505284876777 \cdot 10^{+297}:\\
\;\;\;\;\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 r3496274 = c0;
double r3496275 = 2.0;
double r3496276 = w;
double r3496277 = r3496275 * r3496276;
double r3496278 = r3496274 / r3496277;
double r3496279 = d;
double r3496280 = r3496279 * r3496279;
double r3496281 = r3496274 * r3496280;
double r3496282 = h;
double r3496283 = r3496276 * r3496282;
double r3496284 = D;
double r3496285 = r3496284 * r3496284;
double r3496286 = r3496283 * r3496285;
double r3496287 = r3496281 / r3496286;
double r3496288 = r3496287 * r3496287;
double r3496289 = M;
double r3496290 = r3496289 * r3496289;
double r3496291 = r3496288 - r3496290;
double r3496292 = sqrt(r3496291);
double r3496293 = r3496287 + r3496292;
double r3496294 = r3496278 * r3496293;
return r3496294;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r3496295 = c0;
double r3496296 = w;
double r3496297 = 2.0;
double r3496298 = r3496296 * r3496297;
double r3496299 = r3496295 / r3496298;
double r3496300 = d;
double r3496301 = r3496300 * r3496300;
double r3496302 = r3496295 * r3496301;
double r3496303 = D;
double r3496304 = r3496303 * r3496303;
double r3496305 = h;
double r3496306 = r3496296 * r3496305;
double r3496307 = r3496304 * r3496306;
double r3496308 = r3496302 / r3496307;
double r3496309 = r3496308 * r3496308;
double r3496310 = M;
double r3496311 = r3496310 * r3496310;
double r3496312 = r3496309 - r3496311;
double r3496313 = sqrt(r3496312);
double r3496314 = r3496313 + r3496308;
double r3496315 = r3496299 * r3496314;
double r3496316 = 2.2061505284876777e+297;
bool r3496317 = r3496315 <= r3496316;
double r3496318 = 0.0;
double r3496319 = /* ERROR: no posit support in C */;
double r3496320 = /* ERROR: no posit support in C */;
double r3496321 = r3496317 ? r3496315 : r3496320;
return r3496321;
}



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.2061505284876777e+297Initial program 35.0
if 2.2061505284876777e+297 < (* (/ 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.9
Taylor expanded around inf 33.3
rmApplied insert-posit1633.3
Simplified31.3
Final simplification31.9
herbie shell --seed 2019138 +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))))))