\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 r12494048 = c0;
double r12494049 = 2.0;
double r12494050 = w;
double r12494051 = r12494049 * r12494050;
double r12494052 = r12494048 / r12494051;
double r12494053 = d;
double r12494054 = r12494053 * r12494053;
double r12494055 = r12494048 * r12494054;
double r12494056 = h;
double r12494057 = r12494050 * r12494056;
double r12494058 = D;
double r12494059 = r12494058 * r12494058;
double r12494060 = r12494057 * r12494059;
double r12494061 = r12494055 / r12494060;
double r12494062 = r12494061 * r12494061;
double r12494063 = M;
double r12494064 = r12494063 * r12494063;
double r12494065 = r12494062 - r12494064;
double r12494066 = sqrt(r12494065);
double r12494067 = r12494061 + r12494066;
double r12494068 = r12494052 * r12494067;
return r12494068;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r12494069 = d;
double r12494070 = 2.0623402663332174e-69;
bool r12494071 = r12494069 <= r12494070;
double r12494072 = M;
double r12494073 = D;
double r12494074 = r12494069 / r12494073;
double r12494075 = c0;
double r12494076 = r12494074 * r12494075;
double r12494077 = r12494076 * r12494074;
double r12494078 = w;
double r12494079 = h;
double r12494080 = r12494078 * r12494079;
double r12494081 = r12494077 / r12494080;
double r12494082 = r12494072 + r12494081;
double r12494083 = r12494081 - r12494072;
double r12494084 = r12494082 * r12494083;
double r12494085 = sqrt(r12494084);
double r12494086 = sqrt(r12494085);
double r12494087 = r12494086 * r12494086;
double r12494088 = r12494087 + r12494081;
double r12494089 = cbrt(r12494088);
double r12494090 = r12494085 + r12494081;
double r12494091 = cbrt(r12494090);
double r12494092 = r12494091 * r12494091;
double r12494093 = r12494089 * r12494092;
double r12494094 = r12494093 / r12494078;
double r12494095 = 2.0;
double r12494096 = r12494075 / r12494095;
double r12494097 = r12494094 * r12494096;
double r12494098 = 8.472196766396536e+91;
bool r12494099 = r12494069 <= r12494098;
double r12494100 = 2.0;
double r12494101 = r12494075 * r12494100;
double r12494102 = r12494073 * r12494080;
double r12494103 = r12494073 * r12494102;
double r12494104 = r12494069 * r12494069;
double r12494105 = r12494103 / r12494104;
double r12494106 = r12494101 / r12494105;
double r12494107 = r12494106 / r12494078;
double r12494108 = r12494096 * r12494107;
double r12494109 = 1.0;
double r12494110 = r12494080 / r12494077;
double r12494111 = r12494109 / r12494110;
double r12494112 = r12494085 + r12494111;
double r12494113 = r12494112 / r12494078;
double r12494114 = r12494113 * r12494096;
double r12494115 = r12494099 ? r12494108 : r12494114;
double r12494116 = r12494071 ? r12494097 : r12494115;
return r12494116;
}



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))))))