\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 \cdot d \le 1.130401643315556043188093699614231300241 \cdot 10^{-29}:\\
\;\;\;\;0\\
\mathbf{elif}\;d \cdot d \le 96906761.8799712359905242919921875:\\
\;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(\sqrt[3]{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot \left(D \cdot D\right)\right) \cdot h}} \cdot \left(\sqrt[3]{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot \left(D \cdot D\right)\right) \cdot h}} \cdot \sqrt[3]{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot \left(D \cdot D\right)\right) \cdot h}}\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}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r133075 = c0;
double r133076 = 2.0;
double r133077 = w;
double r133078 = r133076 * r133077;
double r133079 = r133075 / r133078;
double r133080 = d;
double r133081 = r133080 * r133080;
double r133082 = r133075 * r133081;
double r133083 = h;
double r133084 = r133077 * r133083;
double r133085 = D;
double r133086 = r133085 * r133085;
double r133087 = r133084 * r133086;
double r133088 = r133082 / r133087;
double r133089 = r133088 * r133088;
double r133090 = M;
double r133091 = r133090 * r133090;
double r133092 = r133089 - r133091;
double r133093 = sqrt(r133092);
double r133094 = r133088 + r133093;
double r133095 = r133079 * r133094;
return r133095;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r133096 = d;
double r133097 = r133096 * r133096;
double r133098 = 1.130401643315556e-29;
bool r133099 = r133097 <= r133098;
double r133100 = 0.0;
double r133101 = 96906761.87997124;
bool r133102 = r133097 <= r133101;
double r133103 = c0;
double r133104 = 2.0;
double r133105 = w;
double r133106 = r133104 * r133105;
double r133107 = r133103 / r133106;
double r133108 = r133103 * r133097;
double r133109 = D;
double r133110 = r133109 * r133109;
double r133111 = r133105 * r133110;
double r133112 = h;
double r133113 = r133111 * r133112;
double r133114 = r133108 / r133113;
double r133115 = cbrt(r133114);
double r133116 = r133115 * r133115;
double r133117 = r133115 * r133116;
double r133118 = r133105 * r133112;
double r133119 = r133118 * r133110;
double r133120 = r133108 / r133119;
double r133121 = r133120 * r133120;
double r133122 = M;
double r133123 = r133122 * r133122;
double r133124 = r133121 - r133123;
double r133125 = sqrt(r133124);
double r133126 = r133117 + r133125;
double r133127 = r133107 * r133126;
double r133128 = r133102 ? r133127 : r133100;
double r133129 = r133099 ? r133100 : r133128;
return r133129;
}



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 d) < 1.130401643315556e-29 or 96906761.87997124 < (* d d) Initial program 59.5
Taylor expanded around inf 35.2
rmApplied add-cube-cbrt35.2
Simplified35.2
Simplified33.1
if 1.130401643315556e-29 < (* d d) < 96906761.87997124Initial program 54.5
rmApplied add-cube-cbrt56.9
Simplified57.4
Simplified57.8
Final simplification33.8
herbie shell --seed 2019194 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ 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))))))