\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)\begin{array}{l}
\mathbf{if}\;\frac{c0}{w \cdot 2} \cdot \left(\sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M} + \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)}\right) \le 2.3514859676075162 \cdot 10^{+57}:\\
\;\;\;\;\frac{c0}{w \cdot 2} \cdot \left(\sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)} - M \cdot M} + \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(w \cdot h\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r3727823 = c0;
double r3727824 = 2.0;
double r3727825 = w;
double r3727826 = r3727824 * r3727825;
double r3727827 = r3727823 / r3727826;
double r3727828 = d;
double r3727829 = r3727828 * r3727828;
double r3727830 = r3727823 * r3727829;
double r3727831 = h;
double r3727832 = r3727825 * r3727831;
double r3727833 = D;
double r3727834 = r3727833 * r3727833;
double r3727835 = r3727832 * r3727834;
double r3727836 = r3727830 / r3727835;
double r3727837 = r3727836 * r3727836;
double r3727838 = M;
double r3727839 = r3727838 * r3727838;
double r3727840 = r3727837 - r3727839;
double r3727841 = sqrt(r3727840);
double r3727842 = r3727836 + r3727841;
double r3727843 = r3727827 * r3727842;
return r3727843;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r3727844 = c0;
double r3727845 = w;
double r3727846 = 2.0;
double r3727847 = r3727845 * r3727846;
double r3727848 = r3727844 / r3727847;
double r3727849 = d;
double r3727850 = r3727849 * r3727849;
double r3727851 = r3727844 * r3727850;
double r3727852 = D;
double r3727853 = r3727852 * r3727852;
double r3727854 = h;
double r3727855 = r3727845 * r3727854;
double r3727856 = r3727853 * r3727855;
double r3727857 = r3727851 / r3727856;
double r3727858 = r3727857 * r3727857;
double r3727859 = M;
double r3727860 = r3727859 * r3727859;
double r3727861 = r3727858 - r3727860;
double r3727862 = sqrt(r3727861);
double r3727863 = r3727862 + r3727857;
double r3727864 = r3727848 * r3727863;
double r3727865 = 2.3514859676075162e+57;
bool r3727866 = r3727864 <= r3727865;
double r3727867 = 0.0;
double r3727868 = r3727866 ? r3727864 : r3727867;
return r3727868;
}



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
if (* (/ 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))))) < 2.3514859676075162e+57Initial program 34.9
if 2.3514859676075162e+57 < (* (/ 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))))) Initial program 62.3
Simplified55.3
Taylor expanded around inf 33.8
Taylor expanded around 0 31.9
Final simplification32.4
herbie shell --seed 2019143 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ 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))))))