\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)e^{\log 0}double f(double c0, double w, double h, double D, double d, double M) {
double r131895 = c0;
double r131896 = 2.0;
double r131897 = w;
double r131898 = r131896 * r131897;
double r131899 = r131895 / r131898;
double r131900 = d;
double r131901 = r131900 * r131900;
double r131902 = r131895 * r131901;
double r131903 = h;
double r131904 = r131897 * r131903;
double r131905 = D;
double r131906 = r131905 * r131905;
double r131907 = r131904 * r131906;
double r131908 = r131902 / r131907;
double r131909 = r131908 * r131908;
double r131910 = M;
double r131911 = r131910 * r131910;
double r131912 = r131909 - r131911;
double r131913 = sqrt(r131912);
double r131914 = r131908 + r131913;
double r131915 = r131899 * r131914;
return r131915;
}
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 r131916 = 0.0;
double r131917 = log(r131916);
double r131918 = exp(r131917);
return r131918;
}



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-exp-log35.1
Applied add-exp-log49.5
Applied add-exp-log49.5
Applied prod-exp49.5
Applied add-exp-log56.7
Applied div-exp56.7
Applied prod-exp56.2
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))))))