\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}{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) \le 2.452473698910891106314931250746697111958 \cdot 10^{168}:\\
\;\;\;\;\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)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{c0} \cdot \sqrt[3]{c0}}{2} \cdot 0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r116229 = c0;
double r116230 = 2.0;
double r116231 = w;
double r116232 = r116230 * r116231;
double r116233 = r116229 / r116232;
double r116234 = d;
double r116235 = r116234 * r116234;
double r116236 = r116229 * r116235;
double r116237 = h;
double r116238 = r116231 * r116237;
double r116239 = D;
double r116240 = r116239 * r116239;
double r116241 = r116238 * r116240;
double r116242 = r116236 / r116241;
double r116243 = r116242 * r116242;
double r116244 = M;
double r116245 = r116244 * r116244;
double r116246 = r116243 - r116245;
double r116247 = sqrt(r116246);
double r116248 = r116242 + r116247;
double r116249 = r116233 * r116248;
return r116249;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r116250 = c0;
double r116251 = 2.0;
double r116252 = w;
double r116253 = r116251 * r116252;
double r116254 = r116250 / r116253;
double r116255 = d;
double r116256 = r116255 * r116255;
double r116257 = r116250 * r116256;
double r116258 = h;
double r116259 = r116252 * r116258;
double r116260 = D;
double r116261 = r116260 * r116260;
double r116262 = r116259 * r116261;
double r116263 = r116257 / r116262;
double r116264 = r116263 * r116263;
double r116265 = M;
double r116266 = r116265 * r116265;
double r116267 = r116264 - r116266;
double r116268 = sqrt(r116267);
double r116269 = r116263 + r116268;
double r116270 = r116254 * r116269;
double r116271 = 2.452473698910891e+168;
bool r116272 = r116270 <= r116271;
double r116273 = cbrt(r116250);
double r116274 = r116273 * r116273;
double r116275 = r116274 / r116251;
double r116276 = 0.0;
double r116277 = r116275 * r116276;
double r116278 = r116272 ? r116270 : r116277;
return r116278;
}



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 (* 2.0 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.452473698910891e+168Initial program 34.2
if 2.452473698910891e+168 < (* (/ c0 (* 2.0 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 63.7
Taylor expanded around inf 34.7
rmApplied add-cube-cbrt34.7
Applied times-frac34.7
Applied associate-*l*33.3
Simplified32.8
Final simplification33.0
herbie shell --seed 2019209
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
:precision binary64
(* (/ 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))))))