\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}\;d \le 1.028014946374977112793459567345674978253 \cdot 10^{-41}:\\
\;\;\;\;0\\
\mathbf{elif}\;d \le 1.879132275263087348510262122271649682884 \cdot 10^{52}:\\
\;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \frac{{d}^{2} \cdot c0}{w \cdot \left({D}^{2} \cdot h\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r113812 = c0;
double r113813 = 2.0;
double r113814 = w;
double r113815 = r113813 * r113814;
double r113816 = r113812 / r113815;
double r113817 = d;
double r113818 = r113817 * r113817;
double r113819 = r113812 * r113818;
double r113820 = h;
double r113821 = r113814 * r113820;
double r113822 = D;
double r113823 = r113822 * r113822;
double r113824 = r113821 * r113823;
double r113825 = r113819 / r113824;
double r113826 = r113825 * r113825;
double r113827 = M;
double r113828 = r113827 * r113827;
double r113829 = r113826 - r113828;
double r113830 = sqrt(r113829);
double r113831 = r113825 + r113830;
double r113832 = r113816 * r113831;
return r113832;
}
double f(double c0, double w, double h, double D, double d, double __attribute__((unused)) M) {
double r113833 = d;
double r113834 = 1.0280149463749771e-41;
bool r113835 = r113833 <= r113834;
double r113836 = 0.0;
double r113837 = 1.8791322752630873e+52;
bool r113838 = r113833 <= r113837;
double r113839 = c0;
double r113840 = 2.0;
double r113841 = w;
double r113842 = r113840 * r113841;
double r113843 = r113839 / r113842;
double r113844 = 2.0;
double r113845 = pow(r113833, r113844);
double r113846 = r113845 * r113839;
double r113847 = D;
double r113848 = pow(r113847, r113844);
double r113849 = h;
double r113850 = r113848 * r113849;
double r113851 = r113841 * r113850;
double r113852 = r113846 / r113851;
double r113853 = r113844 * r113852;
double r113854 = r113843 * r113853;
double r113855 = r113838 ? r113854 : r113836;
double r113856 = r113835 ? r113836 : r113855;
return r113856;
}



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 d < 1.0280149463749771e-41 or 1.8791322752630873e+52 < d Initial program 59.9
Taylor expanded around inf 34.6
rmApplied add-cube-cbrt34.6
Applied associate-*r*34.6
Simplified32.7
if 1.0280149463749771e-41 < d < 1.8791322752630873e+52Initial program 52.7
rmApplied associate-/l*53.8
Taylor expanded around inf 54.7
Final simplification34.5
herbie shell --seed 2019323
(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))))))