\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 5.369910802110264 \cdot 10^{+103}:\\
\;\;\;\;\frac{c0}{w} \cdot \frac{\mathsf{fma}\left(\sqrt{M + \frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}}, \sqrt{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h} - M}, \frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \frac{d}{D}}{h}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r4182007 = c0;
double r4182008 = 2.0;
double r4182009 = w;
double r4182010 = r4182008 * r4182009;
double r4182011 = r4182007 / r4182010;
double r4182012 = d;
double r4182013 = r4182012 * r4182012;
double r4182014 = r4182007 * r4182013;
double r4182015 = h;
double r4182016 = r4182009 * r4182015;
double r4182017 = D;
double r4182018 = r4182017 * r4182017;
double r4182019 = r4182016 * r4182018;
double r4182020 = r4182014 / r4182019;
double r4182021 = r4182020 * r4182020;
double r4182022 = M;
double r4182023 = r4182022 * r4182022;
double r4182024 = r4182021 - r4182023;
double r4182025 = sqrt(r4182024);
double r4182026 = r4182020 + r4182025;
double r4182027 = r4182011 * r4182026;
return r4182027;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r4182028 = c0;
double r4182029 = w;
double r4182030 = 2.0;
double r4182031 = r4182029 * r4182030;
double r4182032 = r4182028 / r4182031;
double r4182033 = d;
double r4182034 = r4182033 * r4182033;
double r4182035 = r4182028 * r4182034;
double r4182036 = D;
double r4182037 = r4182036 * r4182036;
double r4182038 = h;
double r4182039 = r4182029 * r4182038;
double r4182040 = r4182037 * r4182039;
double r4182041 = r4182035 / r4182040;
double r4182042 = r4182041 * r4182041;
double r4182043 = M;
double r4182044 = r4182043 * r4182043;
double r4182045 = r4182042 - r4182044;
double r4182046 = sqrt(r4182045);
double r4182047 = r4182046 + r4182041;
double r4182048 = r4182032 * r4182047;
double r4182049 = 5.369910802110264e+103;
bool r4182050 = r4182048 <= r4182049;
double r4182051 = r4182028 / r4182029;
double r4182052 = r4182033 / r4182036;
double r4182053 = r4182052 * r4182052;
double r4182054 = r4182053 / r4182038;
double r4182055 = r4182051 * r4182054;
double r4182056 = r4182043 + r4182055;
double r4182057 = sqrt(r4182056);
double r4182058 = r4182055 - r4182043;
double r4182059 = sqrt(r4182058);
double r4182060 = fma(r4182057, r4182059, r4182055);
double r4182061 = r4182060 / r4182030;
double r4182062 = r4182051 * r4182061;
double r4182063 = 0.0;
double r4182064 = r4182050 ? r4182062 : r4182063;
return r4182064;
}



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))))) < 5.369910802110264e+103Initial program 35.7
Simplified37.3
rmApplied difference-of-squares37.3
Applied sqrt-prod43.4
Applied fma-def43.4
if 5.369910802110264e+103 < (* (/ 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.4
Simplified55.2
Taylor expanded around -inf 33.7
Taylor expanded around -inf 31.8
Final simplification33.6
herbie shell --seed 2019141 +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))))))