\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.294498908037386754246307415653783576682 \cdot 10^{-101}:\\
\;\;\;\;\frac{\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 \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 7.635350550318417612119703934768856347212 \cdot 10^{145}:\\
\;\;\;\;\frac{\frac{c0 \cdot 2}{\frac{D \cdot \left(D \cdot \left(w \cdot h\right)\right)}{d \cdot d}}}{w} \cdot \frac{c0}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c0}{2} \cdot \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}{\left(\sqrt[3]{\frac{w \cdot h}{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}} \cdot \sqrt[3]{\frac{w \cdot h}{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}}\right) \cdot \sqrt[3]{\frac{w \cdot h}{\left(\frac{d}{D} \cdot c0\right) \cdot \frac{d}{D}}}}}{w}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r7659079 = c0;
double r7659080 = 2.0;
double r7659081 = w;
double r7659082 = r7659080 * r7659081;
double r7659083 = r7659079 / r7659082;
double r7659084 = d;
double r7659085 = r7659084 * r7659084;
double r7659086 = r7659079 * r7659085;
double r7659087 = h;
double r7659088 = r7659081 * r7659087;
double r7659089 = D;
double r7659090 = r7659089 * r7659089;
double r7659091 = r7659088 * r7659090;
double r7659092 = r7659086 / r7659091;
double r7659093 = r7659092 * r7659092;
double r7659094 = M;
double r7659095 = r7659094 * r7659094;
double r7659096 = r7659093 - r7659095;
double r7659097 = sqrt(r7659096);
double r7659098 = r7659092 + r7659097;
double r7659099 = r7659083 * r7659098;
return r7659099;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r7659100 = d;
double r7659101 = 1.2944989080373868e-101;
bool r7659102 = r7659100 <= r7659101;
double r7659103 = M;
double r7659104 = D;
double r7659105 = r7659100 / r7659104;
double r7659106 = c0;
double r7659107 = r7659105 * r7659106;
double r7659108 = r7659107 * r7659105;
double r7659109 = w;
double r7659110 = h;
double r7659111 = r7659109 * r7659110;
double r7659112 = r7659108 / r7659111;
double r7659113 = r7659103 + r7659112;
double r7659114 = r7659112 - r7659103;
double r7659115 = r7659113 * r7659114;
double r7659116 = sqrt(r7659115);
double r7659117 = r7659116 + r7659112;
double r7659118 = cbrt(r7659117);
double r7659119 = r7659118 * r7659118;
double r7659120 = r7659118 * r7659119;
double r7659121 = r7659120 / r7659109;
double r7659122 = 2.0;
double r7659123 = r7659106 / r7659122;
double r7659124 = r7659121 * r7659123;
double r7659125 = 7.635350550318418e+145;
bool r7659126 = r7659100 <= r7659125;
double r7659127 = 2.0;
double r7659128 = r7659106 * r7659127;
double r7659129 = r7659104 * r7659111;
double r7659130 = r7659104 * r7659129;
double r7659131 = r7659100 * r7659100;
double r7659132 = r7659130 / r7659131;
double r7659133 = r7659128 / r7659132;
double r7659134 = r7659133 / r7659109;
double r7659135 = r7659134 * r7659123;
double r7659136 = 1.0;
double r7659137 = r7659111 / r7659108;
double r7659138 = cbrt(r7659137);
double r7659139 = r7659138 * r7659138;
double r7659140 = r7659139 * r7659138;
double r7659141 = r7659136 / r7659140;
double r7659142 = r7659116 + r7659141;
double r7659143 = r7659142 / r7659109;
double r7659144 = r7659123 * r7659143;
double r7659145 = r7659126 ? r7659135 : r7659144;
double r7659146 = r7659102 ? r7659124 : r7659145;
return r7659146;
}



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.2944989080373868e-101Initial program 59.0
Simplified50.8
rmApplied add-cube-cbrt50.9
if 1.2944989080373868e-101 < d < 7.635350550318418e+145Initial program 55.1
Simplified52.0
Taylor expanded around 0 55.3
Simplified51.4
if 7.635350550318418e+145 < d Initial program 63.7
Simplified56.5
rmApplied clear-num57.1
rmApplied add-cube-cbrt57.7
Final simplification52.4
herbie shell --seed 2019169
(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))))))