\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 5.9746916431763486 \cdot 10^{194}:\\
\;\;\;\;\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 r191537 = c0;
double r191538 = 2.0;
double r191539 = w;
double r191540 = r191538 * r191539;
double r191541 = r191537 / r191540;
double r191542 = d;
double r191543 = r191542 * r191542;
double r191544 = r191537 * r191543;
double r191545 = h;
double r191546 = r191539 * r191545;
double r191547 = D;
double r191548 = r191547 * r191547;
double r191549 = r191546 * r191548;
double r191550 = r191544 / r191549;
double r191551 = r191550 * r191550;
double r191552 = M;
double r191553 = r191552 * r191552;
double r191554 = r191551 - r191553;
double r191555 = sqrt(r191554);
double r191556 = r191550 + r191555;
double r191557 = r191541 * r191556;
return r191557;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r191558 = c0;
double r191559 = 2.0;
double r191560 = w;
double r191561 = r191559 * r191560;
double r191562 = r191558 / r191561;
double r191563 = d;
double r191564 = r191563 * r191563;
double r191565 = r191558 * r191564;
double r191566 = h;
double r191567 = r191560 * r191566;
double r191568 = D;
double r191569 = r191568 * r191568;
double r191570 = r191567 * r191569;
double r191571 = r191565 / r191570;
double r191572 = r191571 * r191571;
double r191573 = M;
double r191574 = r191573 * r191573;
double r191575 = r191572 - r191574;
double r191576 = sqrt(r191575);
double r191577 = r191571 + r191576;
double r191578 = r191562 * r191577;
double r191579 = 5.974691643176349e+194;
bool r191580 = r191578 <= r191579;
double r191581 = 0.0;
double r191582 = r191580 ? r191578 : r191581;
return r191582;
}



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))))) < 5.974691643176349e+194Initial program 37.2
if 5.974691643176349e+194 < (* (/ 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.8
Taylor expanded around inf 34.5
rmApplied pow134.5
Applied pow134.5
Applied pow-prod-down34.5
Simplified32.3
Final simplification33.0
herbie shell --seed 2020024
(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))))))