\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 \cdot D \le 1.547088590093363690727269418020220772909 \cdot 10^{252}:\\
\;\;\;\;0\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c0}{w} \cdot \left(\left(\sqrt[3]{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) \cdot \left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) - M \cdot M}} \cdot \sqrt[3]{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) \cdot \left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) - M \cdot M}}\right) \cdot \sqrt[3]{\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w} + \sqrt{\left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) \cdot \left(\frac{\frac{d}{D} \cdot \frac{d}{D}}{h} \cdot \frac{c0}{w}\right) - M \cdot M}}\right)}{2}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r8049599 = c0;
double r8049600 = 2.0;
double r8049601 = w;
double r8049602 = r8049600 * r8049601;
double r8049603 = r8049599 / r8049602;
double r8049604 = d;
double r8049605 = r8049604 * r8049604;
double r8049606 = r8049599 * r8049605;
double r8049607 = h;
double r8049608 = r8049601 * r8049607;
double r8049609 = D;
double r8049610 = r8049609 * r8049609;
double r8049611 = r8049608 * r8049610;
double r8049612 = r8049606 / r8049611;
double r8049613 = r8049612 * r8049612;
double r8049614 = M;
double r8049615 = r8049614 * r8049614;
double r8049616 = r8049613 - r8049615;
double r8049617 = sqrt(r8049616);
double r8049618 = r8049612 + r8049617;
double r8049619 = r8049603 * r8049618;
return r8049619;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r8049620 = D;
double r8049621 = r8049620 * r8049620;
double r8049622 = 1.5470885900933637e+252;
bool r8049623 = r8049621 <= r8049622;
double r8049624 = 0.0;
double r8049625 = c0;
double r8049626 = w;
double r8049627 = r8049625 / r8049626;
double r8049628 = d;
double r8049629 = r8049628 / r8049620;
double r8049630 = r8049629 * r8049629;
double r8049631 = h;
double r8049632 = r8049630 / r8049631;
double r8049633 = r8049632 * r8049627;
double r8049634 = r8049633 * r8049633;
double r8049635 = M;
double r8049636 = r8049635 * r8049635;
double r8049637 = r8049634 - r8049636;
double r8049638 = sqrt(r8049637);
double r8049639 = r8049633 + r8049638;
double r8049640 = cbrt(r8049639);
double r8049641 = r8049640 * r8049640;
double r8049642 = r8049641 * r8049640;
double r8049643 = r8049627 * r8049642;
double r8049644 = 2.0;
double r8049645 = r8049643 / r8049644;
double r8049646 = r8049623 ? r8049624 : r8049645;
return r8049646;
}



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 D) < 1.5470885900933637e+252Initial program 59.1
Simplified55.3
Taylor expanded around inf 33.9
rmApplied mul032.0
if 1.5470885900933637e+252 < (* D D) Initial program 61.5
Simplified44.1
rmApplied add-cube-cbrt44.2
Final simplification33.7
herbie shell --seed 2019172 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ 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))))))