\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)\frac{\sqrt[3]{c0} \cdot \sqrt[3]{c0}}{2} \cdot 0double f(double c0, double w, double h, double D, double d, double M) {
double r138243 = c0;
double r138244 = 2.0;
double r138245 = w;
double r138246 = r138244 * r138245;
double r138247 = r138243 / r138246;
double r138248 = d;
double r138249 = r138248 * r138248;
double r138250 = r138243 * r138249;
double r138251 = h;
double r138252 = r138245 * r138251;
double r138253 = D;
double r138254 = r138253 * r138253;
double r138255 = r138252 * r138254;
double r138256 = r138250 / r138255;
double r138257 = r138256 * r138256;
double r138258 = M;
double r138259 = r138258 * r138258;
double r138260 = r138257 - r138259;
double r138261 = sqrt(r138260);
double r138262 = r138256 + r138261;
double r138263 = r138247 * r138262;
return r138263;
}
double f(double c0, double __attribute__((unused)) w, double __attribute__((unused)) h, double __attribute__((unused)) D, double __attribute__((unused)) d, double __attribute__((unused)) M) {
double r138264 = c0;
double r138265 = cbrt(r138264);
double r138266 = r138265 * r138265;
double r138267 = 2.0;
double r138268 = r138266 / r138267;
double r138269 = 0.0;
double r138270 = r138268 * r138269;
return r138270;
}



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
Initial program 59.1
Taylor expanded around inf 35.1
rmApplied add-cube-cbrt35.1
Applied times-frac35.1
Applied associate-*l*33.7
Simplified33.2
Final simplification33.2
herbie shell --seed 2020001
(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))))))