\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 r165017 = c0;
double r165018 = 2.0;
double r165019 = w;
double r165020 = r165018 * r165019;
double r165021 = r165017 / r165020;
double r165022 = d;
double r165023 = r165022 * r165022;
double r165024 = r165017 * r165023;
double r165025 = h;
double r165026 = r165019 * r165025;
double r165027 = D;
double r165028 = r165027 * r165027;
double r165029 = r165026 * r165028;
double r165030 = r165024 / r165029;
double r165031 = r165030 * r165030;
double r165032 = M;
double r165033 = r165032 * r165032;
double r165034 = r165031 - r165033;
double r165035 = sqrt(r165034);
double r165036 = r165030 + r165035;
double r165037 = r165021 * r165036;
return r165037;
}
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 r165038 = 0.0;
return r165038;
}



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 *-un-lft-identity35.7
Applied associate-*l*35.7
Simplified33.9
Final simplification33.9
herbie shell --seed 2019325 +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))))))