\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 3.3002661492109247 \cdot 10^{188}:\\
\;\;\;\;\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}:\\
\;\;\;\;\sqrt[3]{0}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r259184 = c0;
double r259185 = 2.0;
double r259186 = w;
double r259187 = r259185 * r259186;
double r259188 = r259184 / r259187;
double r259189 = d;
double r259190 = r259189 * r259189;
double r259191 = r259184 * r259190;
double r259192 = h;
double r259193 = r259186 * r259192;
double r259194 = D;
double r259195 = r259194 * r259194;
double r259196 = r259193 * r259195;
double r259197 = r259191 / r259196;
double r259198 = r259197 * r259197;
double r259199 = M;
double r259200 = r259199 * r259199;
double r259201 = r259198 - r259200;
double r259202 = sqrt(r259201);
double r259203 = r259197 + r259202;
double r259204 = r259188 * r259203;
return r259204;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r259205 = c0;
double r259206 = 2.0;
double r259207 = w;
double r259208 = r259206 * r259207;
double r259209 = r259205 / r259208;
double r259210 = d;
double r259211 = r259210 * r259210;
double r259212 = r259205 * r259211;
double r259213 = h;
double r259214 = r259207 * r259213;
double r259215 = D;
double r259216 = r259215 * r259215;
double r259217 = r259214 * r259216;
double r259218 = r259212 / r259217;
double r259219 = r259218 * r259218;
double r259220 = M;
double r259221 = r259220 * r259220;
double r259222 = r259219 - r259221;
double r259223 = sqrt(r259222);
double r259224 = r259218 + r259223;
double r259225 = r259209 * r259224;
double r259226 = 3.3002661492109247e+188;
bool r259227 = r259225 <= r259226;
double r259228 = 0.0;
double r259229 = cbrt(r259228);
double r259230 = r259227 ? r259225 : r259229;
return r259230;
}



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))))) < 3.3002661492109247e+188Initial program 35.2
if 3.3002661492109247e+188 < (* (/ 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.8
Taylor expanded around inf 33.9
rmApplied add-cbrt-cube33.9
Applied add-cbrt-cube41.6
Applied add-cbrt-cube41.6
Applied cbrt-unprod41.6
Applied add-cbrt-cube48.5
Applied cbrt-undiv48.9
Applied cbrt-unprod48.9
Simplified31.8
Final simplification32.3
herbie shell --seed 2020059
(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))))))