\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)c0 \cdot 0
double f(double c0, double w, double h, double D, double d, double M) {
double r109095 = c0;
double r109096 = 2.0;
double r109097 = w;
double r109098 = r109096 * r109097;
double r109099 = r109095 / r109098;
double r109100 = d;
double r109101 = r109100 * r109100;
double r109102 = r109095 * r109101;
double r109103 = h;
double r109104 = r109097 * r109103;
double r109105 = D;
double r109106 = r109105 * r109105;
double r109107 = r109104 * r109106;
double r109108 = r109102 / r109107;
double r109109 = r109108 * r109108;
double r109110 = M;
double r109111 = r109110 * r109110;
double r109112 = r109109 - r109111;
double r109113 = sqrt(r109112);
double r109114 = r109108 + r109113;
double r109115 = r109099 * r109114;
return r109115;
}
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 r109116 = c0;
double r109117 = 0.0;
double r109118 = r109116 * r109117;
return r109118;
}



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.5
Taylor expanded around inf 35.6
rmApplied div-inv35.6
Applied associate-*l*33.7
Simplified33.7
Final simplification33.7
herbie shell --seed 2019304 +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))))))