\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{1}{2} \cdot 0double f(double c0, double w, double h, double D, double d, double M) {
double r111783 = c0;
double r111784 = 2.0;
double r111785 = w;
double r111786 = r111784 * r111785;
double r111787 = r111783 / r111786;
double r111788 = d;
double r111789 = r111788 * r111788;
double r111790 = r111783 * r111789;
double r111791 = h;
double r111792 = r111785 * r111791;
double r111793 = D;
double r111794 = r111793 * r111793;
double r111795 = r111792 * r111794;
double r111796 = r111790 / r111795;
double r111797 = r111796 * r111796;
double r111798 = M;
double r111799 = r111798 * r111798;
double r111800 = r111797 - r111799;
double r111801 = sqrt(r111800);
double r111802 = r111796 + r111801;
double r111803 = r111787 * r111802;
return r111803;
}
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 r111804 = 1.0;
double r111805 = 2.0;
double r111806 = r111804 / r111805;
double r111807 = 0.0;
double r111808 = r111806 * r111807;
return r111808;
}



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.8
rmApplied *-un-lft-identity35.8
Applied times-frac35.8
Applied associate-*l*35.8
Simplified33.9
Final simplification33.9
herbie shell --seed 2019305 +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))))))