\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)0
double f(double c0, double w, double h, double D, double d, double M) {
double r145439 = c0;
double r145440 = 2.0;
double r145441 = w;
double r145442 = r145440 * r145441;
double r145443 = r145439 / r145442;
double r145444 = d;
double r145445 = r145444 * r145444;
double r145446 = r145439 * r145445;
double r145447 = h;
double r145448 = r145441 * r145447;
double r145449 = D;
double r145450 = r145449 * r145449;
double r145451 = r145448 * r145450;
double r145452 = r145446 / r145451;
double r145453 = r145452 * r145452;
double r145454 = M;
double r145455 = r145454 * r145454;
double r145456 = r145453 - r145455;
double r145457 = sqrt(r145456);
double r145458 = r145452 + r145457;
double r145459 = r145443 * r145458;
return r145459;
}
double f(double __attribute__((unused)) c0, double __attribute__((unused)) w, double __attribute__((unused)) h, double __attribute__((unused)) D, double __attribute__((unused)) d, double __attribute__((unused)) M) {
double r145460 = 0.0;
return r145460;
}



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.3
Taylor expanded around inf 35.7
rmApplied add-cbrt-cube35.7
Applied add-cbrt-cube42.3
Applied add-cbrt-cube42.3
Applied cbrt-unprod42.3
Applied add-cbrt-cube48.7
Applied cbrt-undiv49.1
Applied cbrt-unprod49.1
Simplified33.8
Final simplification33.8
herbie shell --seed 2019326
(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))))))