\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 8.0090591400529175 \cdot 10^{217}:\\
\;\;\;\;\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}:\\
\;\;\;\;e^{\log 0}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r167184 = c0;
double r167185 = 2.0;
double r167186 = w;
double r167187 = r167185 * r167186;
double r167188 = r167184 / r167187;
double r167189 = d;
double r167190 = r167189 * r167189;
double r167191 = r167184 * r167190;
double r167192 = h;
double r167193 = r167186 * r167192;
double r167194 = D;
double r167195 = r167194 * r167194;
double r167196 = r167193 * r167195;
double r167197 = r167191 / r167196;
double r167198 = r167197 * r167197;
double r167199 = M;
double r167200 = r167199 * r167199;
double r167201 = r167198 - r167200;
double r167202 = sqrt(r167201);
double r167203 = r167197 + r167202;
double r167204 = r167188 * r167203;
return r167204;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r167205 = c0;
double r167206 = 2.0;
double r167207 = w;
double r167208 = r167206 * r167207;
double r167209 = r167205 / r167208;
double r167210 = d;
double r167211 = r167210 * r167210;
double r167212 = r167205 * r167211;
double r167213 = h;
double r167214 = r167207 * r167213;
double r167215 = D;
double r167216 = r167215 * r167215;
double r167217 = r167214 * r167216;
double r167218 = r167212 / r167217;
double r167219 = r167218 * r167218;
double r167220 = M;
double r167221 = r167220 * r167220;
double r167222 = r167219 - r167221;
double r167223 = sqrt(r167222);
double r167224 = r167218 + r167223;
double r167225 = r167209 * r167224;
double r167226 = 8.009059140052918e+217;
bool r167227 = r167225 <= r167226;
double r167228 = 0.0;
double r167229 = log(r167228);
double r167230 = exp(r167229);
double r167231 = r167227 ? r167225 : r167230;
return r167231;
}



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))))) < 8.009059140052918e+217Initial program 35.6
if 8.009059140052918e+217 < (* (/ 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.9
Taylor expanded around inf 34.0
rmApplied add-exp-log34.0
Applied add-exp-log49.1
Applied add-exp-log49.1
Applied prod-exp49.1
Applied add-exp-log56.7
Applied div-exp56.7
Applied prod-exp56.2
Simplified31.8
Final simplification32.4
herbie shell --seed 2020042
(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))))))