\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{0}{2 \cdot w}double f(double c0, double w, double h, double D, double d, double M) {
double r137421 = c0;
double r137422 = 2.0;
double r137423 = w;
double r137424 = r137422 * r137423;
double r137425 = r137421 / r137424;
double r137426 = d;
double r137427 = r137426 * r137426;
double r137428 = r137421 * r137427;
double r137429 = h;
double r137430 = r137423 * r137429;
double r137431 = D;
double r137432 = r137431 * r137431;
double r137433 = r137430 * r137432;
double r137434 = r137428 / r137433;
double r137435 = r137434 * r137434;
double r137436 = M;
double r137437 = r137436 * r137436;
double r137438 = r137435 - r137437;
double r137439 = sqrt(r137438);
double r137440 = r137434 + r137439;
double r137441 = r137425 * r137440;
return r137441;
}
double f(double __attribute__((unused)) c0, double w, double __attribute__((unused)) h, double __attribute__((unused)) D, double __attribute__((unused)) d, double __attribute__((unused)) M) {
double r137442 = 0.0;
double r137443 = 2.0;
double r137444 = w;
double r137445 = r137443 * r137444;
double r137446 = r137442 / r137445;
return r137446;
}



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 58.8
Taylor expanded around inf 35.2
rmApplied associate-*l/33.3
Simplified33.3
Final simplification33.3
herbie shell --seed 2019350 +o rules:numerics
(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))))))