\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}\;c0 \le 5.43376491402612 \cdot 10^{-292}:\\
\;\;\;\;\frac{c0}{w} \cdot \frac{\left(\sqrt[3]{\frac{c0 \cdot \frac{d}{D}}{w} \cdot \frac{\frac{d}{D}}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right)}} \cdot \sqrt[3]{\frac{c0 \cdot \frac{d}{D}}{w} \cdot \frac{\frac{d}{D}}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right)}}\right) \cdot \sqrt[3]{\frac{c0 \cdot \frac{d}{D}}{w} \cdot \frac{\frac{d}{D}}{h} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right)}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c0 \cdot \frac{d}{D}}{w} \cdot \frac{\frac{d}{D}}{h} + \sqrt{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} - M} \cdot \sqrt{M + \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}}}{2} \cdot \frac{c0}{w}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r2882111 = c0;
double r2882112 = 2.0;
double r2882113 = w;
double r2882114 = r2882112 * r2882113;
double r2882115 = r2882111 / r2882114;
double r2882116 = d;
double r2882117 = r2882116 * r2882116;
double r2882118 = r2882111 * r2882117;
double r2882119 = h;
double r2882120 = r2882113 * r2882119;
double r2882121 = D;
double r2882122 = r2882121 * r2882121;
double r2882123 = r2882120 * r2882122;
double r2882124 = r2882118 / r2882123;
double r2882125 = r2882124 * r2882124;
double r2882126 = M;
double r2882127 = r2882126 * r2882126;
double r2882128 = r2882125 - r2882127;
double r2882129 = sqrt(r2882128);
double r2882130 = r2882124 + r2882129;
double r2882131 = r2882115 * r2882130;
return r2882131;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r2882132 = c0;
double r2882133 = 5.43376491402612e-292;
bool r2882134 = r2882132 <= r2882133;
double r2882135 = w;
double r2882136 = r2882132 / r2882135;
double r2882137 = d;
double r2882138 = D;
double r2882139 = r2882137 / r2882138;
double r2882140 = r2882132 * r2882139;
double r2882141 = r2882140 / r2882135;
double r2882142 = h;
double r2882143 = r2882139 / r2882142;
double r2882144 = r2882141 * r2882143;
double r2882145 = r2882139 * r2882139;
double r2882146 = r2882145 / r2882142;
double r2882147 = r2882146 * r2882136;
double r2882148 = M;
double r2882149 = r2882147 - r2882148;
double r2882150 = r2882148 + r2882147;
double r2882151 = r2882149 * r2882150;
double r2882152 = sqrt(r2882151);
double r2882153 = r2882144 + r2882152;
double r2882154 = cbrt(r2882153);
double r2882155 = r2882154 * r2882154;
double r2882156 = r2882155 * r2882154;
double r2882157 = 2.0;
double r2882158 = r2882156 / r2882157;
double r2882159 = r2882136 * r2882158;
double r2882160 = sqrt(r2882149);
double r2882161 = sqrt(r2882150);
double r2882162 = r2882160 * r2882161;
double r2882163 = r2882144 + r2882162;
double r2882164 = r2882163 / r2882157;
double r2882165 = r2882164 * r2882136;
double r2882166 = r2882134 ? r2882159 : r2882165;
return r2882166;
}



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 < 5.43376491402612e-292Initial program 58.2
Simplified52.7
rmApplied *-un-lft-identity52.7
Applied times-frac53.5
Applied associate-*r*53.9
Simplified54.3
rmApplied add-cube-cbrt54.4
if 5.43376491402612e-292 < c0 Initial program 58.0
Simplified52.6
rmApplied *-un-lft-identity52.6
Applied times-frac53.8
Applied associate-*r*54.2
Simplified54.5
rmApplied sqrt-prod55.2
Final simplification54.8
herbie shell --seed 2019153
(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))))))