\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}\;d \le -1.428069600682858 \cdot 10^{-115}:\\
\;\;\;\;0\\
\mathbf{elif}\;d \le 2.3691491374921303 \cdot 10^{-177}:\\
\;\;\;\;\frac{\left(\left(\sqrt[3]{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h}} \cdot \sqrt[3]{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h}}\right) \cdot \frac{c0}{w}\right) \cdot \sqrt[3]{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h}} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) \cdot \left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) - M \cdot M}}{2} \cdot \frac{c0}{w}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r5283206 = c0;
double r5283207 = 2.0;
double r5283208 = w;
double r5283209 = r5283207 * r5283208;
double r5283210 = r5283206 / r5283209;
double r5283211 = d;
double r5283212 = r5283211 * r5283211;
double r5283213 = r5283206 * r5283212;
double r5283214 = h;
double r5283215 = r5283208 * r5283214;
double r5283216 = D;
double r5283217 = r5283216 * r5283216;
double r5283218 = r5283215 * r5283217;
double r5283219 = r5283213 / r5283218;
double r5283220 = r5283219 * r5283219;
double r5283221 = M;
double r5283222 = r5283221 * r5283221;
double r5283223 = r5283220 - r5283222;
double r5283224 = sqrt(r5283223);
double r5283225 = r5283219 + r5283224;
double r5283226 = r5283210 * r5283225;
return r5283226;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r5283227 = d;
double r5283228 = -1.428069600682858e-115;
bool r5283229 = r5283227 <= r5283228;
double r5283230 = 0.0;
double r5283231 = 2.3691491374921303e-177;
bool r5283232 = r5283227 <= r5283231;
double r5283233 = D;
double r5283234 = r5283227 / r5283233;
double r5283235 = r5283234 * r5283234;
double r5283236 = h;
double r5283237 = r5283235 / r5283236;
double r5283238 = cbrt(r5283237);
double r5283239 = r5283238 * r5283238;
double r5283240 = c0;
double r5283241 = w;
double r5283242 = r5283240 / r5283241;
double r5283243 = r5283239 * r5283242;
double r5283244 = r5283243 * r5283238;
double r5283245 = r5283237 * r5283242;
double r5283246 = r5283245 * r5283245;
double r5283247 = M;
double r5283248 = r5283247 * r5283247;
double r5283249 = r5283246 - r5283248;
double r5283250 = sqrt(r5283249);
double r5283251 = r5283244 + r5283250;
double r5283252 = 2.0;
double r5283253 = r5283251 / r5283252;
double r5283254 = r5283253 * r5283242;
double r5283255 = r5283232 ? r5283254 : r5283230;
double r5283256 = r5283229 ? r5283230 : r5283255;
return r5283256;
}



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 d < -1.428069600682858e-115 or 2.3691491374921303e-177 < d Initial program 57.8
Simplified53.7
Taylor expanded around inf 34.2
Taylor expanded around 0 32.4
if -1.428069600682858e-115 < d < 2.3691491374921303e-177Initial program 61.0
Simplified43.6
rmApplied add-cube-cbrt48.1
Applied associate-*r*48.5
Final simplification34.3
herbie shell --seed 2019164 +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))))))