\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 2.062340266333217399231822986622425403289 \cdot 10^{-69}:\\
\;\;\;\;\frac{\sqrt[3]{\sqrt{\sqrt{\left(M + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}\right) \cdot \left(\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} - M\right)}} \cdot \sqrt{\sqrt{\left(M + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}\right) \cdot \left(\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} - M\right)}} + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}} \cdot \left(\sqrt[3]{\sqrt{\left(M + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}\right) \cdot \left(\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} - M\right)} + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}} \cdot \sqrt[3]{\sqrt{\left(M + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}\right) \cdot \left(\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} - M\right)} + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}}\right)}{w} \cdot \frac{c0}{2}\\
\mathbf{elif}\;d \le 8.472196766396536195233884887397659818707 \cdot 10^{91}:\\
\;\;\;\;\frac{c0}{2} \cdot \frac{\frac{c0 \cdot 2}{\frac{D \cdot \left(D \cdot \left(w \cdot h\right)\right)}{d \cdot d}}}{w}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\left(M + \frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h}\right) \cdot \left(\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}{w \cdot h} - M\right)} + \frac{1}{\frac{w \cdot h}{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}}}{w} \cdot \frac{c0}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r7334058 = c0;
double r7334059 = 2.0;
double r7334060 = w;
double r7334061 = r7334059 * r7334060;
double r7334062 = r7334058 / r7334061;
double r7334063 = d;
double r7334064 = r7334063 * r7334063;
double r7334065 = r7334058 * r7334064;
double r7334066 = h;
double r7334067 = r7334060 * r7334066;
double r7334068 = D;
double r7334069 = r7334068 * r7334068;
double r7334070 = r7334067 * r7334069;
double r7334071 = r7334065 / r7334070;
double r7334072 = r7334071 * r7334071;
double r7334073 = M;
double r7334074 = r7334073 * r7334073;
double r7334075 = r7334072 - r7334074;
double r7334076 = sqrt(r7334075);
double r7334077 = r7334071 + r7334076;
double r7334078 = r7334062 * r7334077;
return r7334078;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r7334079 = d;
double r7334080 = 2.0623402663332174e-69;
bool r7334081 = r7334079 <= r7334080;
double r7334082 = M;
double r7334083 = D;
double r7334084 = r7334079 / r7334083;
double r7334085 = c0;
double r7334086 = r7334084 * r7334085;
double r7334087 = r7334086 * r7334084;
double r7334088 = w;
double r7334089 = h;
double r7334090 = r7334088 * r7334089;
double r7334091 = r7334087 / r7334090;
double r7334092 = r7334082 + r7334091;
double r7334093 = r7334091 - r7334082;
double r7334094 = r7334092 * r7334093;
double r7334095 = sqrt(r7334094);
double r7334096 = sqrt(r7334095);
double r7334097 = r7334096 * r7334096;
double r7334098 = r7334097 + r7334091;
double r7334099 = cbrt(r7334098);
double r7334100 = r7334095 + r7334091;
double r7334101 = cbrt(r7334100);
double r7334102 = r7334101 * r7334101;
double r7334103 = r7334099 * r7334102;
double r7334104 = r7334103 / r7334088;
double r7334105 = 2.0;
double r7334106 = r7334085 / r7334105;
double r7334107 = r7334104 * r7334106;
double r7334108 = 8.472196766396536e+91;
bool r7334109 = r7334079 <= r7334108;
double r7334110 = 2.0;
double r7334111 = r7334085 * r7334110;
double r7334112 = r7334083 * r7334090;
double r7334113 = r7334083 * r7334112;
double r7334114 = r7334079 * r7334079;
double r7334115 = r7334113 / r7334114;
double r7334116 = r7334111 / r7334115;
double r7334117 = r7334116 / r7334088;
double r7334118 = r7334106 * r7334117;
double r7334119 = 1.0;
double r7334120 = r7334090 / r7334087;
double r7334121 = r7334119 / r7334120;
double r7334122 = r7334095 + r7334121;
double r7334123 = r7334122 / r7334088;
double r7334124 = r7334123 * r7334106;
double r7334125 = r7334109 ? r7334118 : r7334124;
double r7334126 = r7334081 ? r7334107 : r7334125;
return r7334126;
}



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 < 2.0623402663332174e-69Initial program 59.5
Simplified51.9
rmApplied add-cube-cbrt52.0
rmApplied add-sqr-sqrt52.0
if 2.0623402663332174e-69 < d < 8.472196766396536e+91Initial program 54.6
Simplified52.1
Taylor expanded around 0 55.4
Simplified51.9
if 8.472196766396536e+91 < d Initial program 62.1
Simplified55.5
rmApplied clear-num56.2
Final simplification53.0
herbie shell --seed 2019172
(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))))))