\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.885464112857827 \cdot 10^{-142}:\\
\;\;\;\;\frac{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} + \sqrt{\left(\frac{\frac{d}{D}}{h} \cdot \frac{c0 \cdot \frac{d}{D}}{w} + M\right) \cdot \left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} - M\right)}}{2} \cdot \frac{c0}{w}\\
\mathbf{elif}\;c0 \le 1.1156496586195279 \cdot 10^{-69}:\\
\;\;\;\;\frac{c0}{w} \cdot \frac{\log \left(e^{\sqrt{\frac{\frac{\left(c0 \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h}}{w} \cdot \frac{\frac{\left(c0 \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h}}{w} - M \cdot M} + \frac{\frac{\left(c0 \cdot \frac{d}{D}\right) \cdot \frac{d}{D}}{h}}{w}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} + \sqrt{\left(\frac{\frac{d}{D}}{h} \cdot \frac{c0 \cdot \frac{d}{D}}{w} + M\right) \cdot \left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} - M\right)}}{2} \cdot \frac{c0}{w}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r4048109 = c0;
double r4048110 = 2.0;
double r4048111 = w;
double r4048112 = r4048110 * r4048111;
double r4048113 = r4048109 / r4048112;
double r4048114 = d;
double r4048115 = r4048114 * r4048114;
double r4048116 = r4048109 * r4048115;
double r4048117 = h;
double r4048118 = r4048111 * r4048117;
double r4048119 = D;
double r4048120 = r4048119 * r4048119;
double r4048121 = r4048118 * r4048120;
double r4048122 = r4048116 / r4048121;
double r4048123 = r4048122 * r4048122;
double r4048124 = M;
double r4048125 = r4048124 * r4048124;
double r4048126 = r4048123 - r4048125;
double r4048127 = sqrt(r4048126);
double r4048128 = r4048122 + r4048127;
double r4048129 = r4048113 * r4048128;
return r4048129;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r4048130 = c0;
double r4048131 = -5.885464112857827e-142;
bool r4048132 = r4048130 <= r4048131;
double r4048133 = d;
double r4048134 = D;
double r4048135 = r4048133 / r4048134;
double r4048136 = r4048135 * r4048135;
double r4048137 = h;
double r4048138 = r4048136 / r4048137;
double r4048139 = w;
double r4048140 = r4048130 / r4048139;
double r4048141 = r4048138 * r4048140;
double r4048142 = r4048135 / r4048137;
double r4048143 = r4048130 * r4048135;
double r4048144 = r4048143 / r4048139;
double r4048145 = r4048142 * r4048144;
double r4048146 = M;
double r4048147 = r4048145 + r4048146;
double r4048148 = r4048141 - r4048146;
double r4048149 = r4048147 * r4048148;
double r4048150 = sqrt(r4048149);
double r4048151 = r4048141 + r4048150;
double r4048152 = 2.0;
double r4048153 = r4048151 / r4048152;
double r4048154 = r4048153 * r4048140;
double r4048155 = 1.1156496586195279e-69;
bool r4048156 = r4048130 <= r4048155;
double r4048157 = r4048143 * r4048135;
double r4048158 = r4048157 / r4048137;
double r4048159 = r4048158 / r4048139;
double r4048160 = r4048159 * r4048159;
double r4048161 = r4048146 * r4048146;
double r4048162 = r4048160 - r4048161;
double r4048163 = sqrt(r4048162);
double r4048164 = r4048163 + r4048159;
double r4048165 = exp(r4048164);
double r4048166 = log(r4048165);
double r4048167 = r4048166 / r4048152;
double r4048168 = r4048140 * r4048167;
double r4048169 = r4048156 ? r4048168 : r4048154;
double r4048170 = r4048132 ? r4048154 : r4048169;
return r4048170;
}



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.885464112857827e-142 or 1.1156496586195279e-69 < c0 Initial program 58.6
Simplified52.9
rmApplied *-un-lft-identity52.9
Applied times-frac53.4
Applied associate-*r*53.8
Simplified54.2
if -5.885464112857827e-142 < c0 < 1.1156496586195279e-69Initial program 56.7
Simplified51.3
rmApplied add-log-exp59.0
Applied add-log-exp58.0
Applied sum-log57.8
Simplified51.5
Final simplification53.3
herbie shell --seed 2019152
(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))))))