\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}{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) \le 2.3644658069113624 \cdot 10^{26}:\\
\;\;\;\;\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)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r125084 = c0;
double r125085 = 2.0;
double r125086 = w;
double r125087 = r125085 * r125086;
double r125088 = r125084 / r125087;
double r125089 = d;
double r125090 = r125089 * r125089;
double r125091 = r125084 * r125090;
double r125092 = h;
double r125093 = r125086 * r125092;
double r125094 = D;
double r125095 = r125094 * r125094;
double r125096 = r125093 * r125095;
double r125097 = r125091 / r125096;
double r125098 = r125097 * r125097;
double r125099 = M;
double r125100 = r125099 * r125099;
double r125101 = r125098 - r125100;
double r125102 = sqrt(r125101);
double r125103 = r125097 + r125102;
double r125104 = r125088 * r125103;
return r125104;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r125105 = c0;
double r125106 = 2.0;
double r125107 = w;
double r125108 = r125106 * r125107;
double r125109 = r125105 / r125108;
double r125110 = d;
double r125111 = r125110 * r125110;
double r125112 = r125105 * r125111;
double r125113 = h;
double r125114 = r125107 * r125113;
double r125115 = D;
double r125116 = r125115 * r125115;
double r125117 = r125114 * r125116;
double r125118 = r125112 / r125117;
double r125119 = r125118 * r125118;
double r125120 = M;
double r125121 = r125120 * r125120;
double r125122 = r125119 - r125121;
double r125123 = sqrt(r125122);
double r125124 = r125118 + r125123;
double r125125 = r125109 * r125124;
double r125126 = 2.3644658069113624e+26;
bool r125127 = r125125 <= r125126;
double r125128 = 0.0;
double r125129 = r125127 ? r125125 : r125128;
return r125129;
}



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.0 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.3644658069113624e+26Initial program 37.1
if 2.3644658069113624e+26 < (* (/ c0 (* 2.0 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 63.4
Taylor expanded around inf 34.1
rmApplied *-un-lft-identity34.1
Applied associate-*l*34.1
Simplified32.0
Final simplification32.8
herbie shell --seed 2020035
(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))))))