double f(double c0, double w, double h, double D, double d, double M) {
double r34171346 = c0;
double r34171347 = 2.0;
double r34171348 = w;
double r34171349 = r34171347 * r34171348;
double r34171350 = r34171346 / r34171349;
double r34171351 = d;
double r34171352 = r34171351 * r34171351;
double r34171353 = r34171346 * r34171352;
double r34171354 = h;
double r34171355 = r34171348 * r34171354;
double r34171356 = D;
double r34171357 = r34171356 * r34171356;
double r34171358 = r34171355 * r34171357;
double r34171359 = r34171353 / r34171358;
double r34171360 = r34171359 * r34171359;
double r34171361 = M;
double r34171362 = r34171361 * r34171361;
double r34171363 = r34171360 - r34171362;
double r34171364 = sqrt(r34171363);
double r34171365 = r34171359 + r34171364;
double r34171366 = r34171350 * r34171365;
return r34171366;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r34171367 = c0;
double r34171368 = w;
double r34171369 = 2.0;
double r34171370 = r34171368 * r34171369;
double r34171371 = r34171367 / r34171370;
double r34171372 = d;
double r34171373 = r34171372 * r34171372;
double r34171374 = r34171367 * r34171373;
double r34171375 = D;
double r34171376 = r34171375 * r34171375;
double r34171377 = h;
double r34171378 = r34171368 * r34171377;
double r34171379 = r34171376 * r34171378;
double r34171380 = r34171374 / r34171379;
double r34171381 = r34171380 * r34171380;
double r34171382 = M;
double r34171383 = r34171382 * r34171382;
double r34171384 = r34171381 - r34171383;
double r34171385 = sqrt(r34171384);
double r34171386 = r34171385 + r34171380;
double r34171387 = r34171371 * r34171386;
double r34171388 = 3.2425041662333434e+195;
bool r34171389 = r34171387 <= r34171388;
double r34171390 = 0.0;
double r34171391 = r34171389 ? r34171387 : r34171390;
return r34171391;
}
\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 3.2425041662333434 \cdot 10^{+195}:\\
\;\;\;\;\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}


Bits error versus c0



Bits error versus w



Bits error versus h



Bits error versus D



Bits error versus d



Bits error versus M
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))))) < 3.2425041662333434e+195Initial program 34.3
if 3.2425041662333434e+195 < (* (/ 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.6
Simplified56.2
Taylor expanded around -inf 32.2
Final simplification32.5
herbie shell --seed 2019102 +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))))))