double f(double c0, double w, double h, double D, double d, double M) {
double r36790602 = c0;
double r36790603 = 2.0;
double r36790604 = w;
double r36790605 = r36790603 * r36790604;
double r36790606 = r36790602 / r36790605;
double r36790607 = d;
double r36790608 = r36790607 * r36790607;
double r36790609 = r36790602 * r36790608;
double r36790610 = h;
double r36790611 = r36790604 * r36790610;
double r36790612 = D;
double r36790613 = r36790612 * r36790612;
double r36790614 = r36790611 * r36790613;
double r36790615 = r36790609 / r36790614;
double r36790616 = r36790615 * r36790615;
double r36790617 = M;
double r36790618 = r36790617 * r36790617;
double r36790619 = r36790616 - r36790618;
double r36790620 = sqrt(r36790619);
double r36790621 = r36790615 + r36790620;
double r36790622 = r36790606 * r36790621;
return r36790622;
}
double f(double c0, double w, double h, double D, double d, double __attribute__((unused)) M) {
double r36790623 = w;
double r36790624 = -5.2266222523996e+14;
bool r36790625 = r36790623 <= r36790624;
double r36790626 = d;
double r36790627 = c0;
double r36790628 = r36790626 * r36790627;
double r36790629 = D;
double r36790630 = r36790623 * r36790629;
double r36790631 = r36790628 / r36790630;
double r36790632 = r36790631 * r36790631;
double r36790633 = h;
double r36790634 = r36790632 / r36790633;
double r36790635 = 2.0;
double r36790636 = r36790634 * r36790635;
double r36790637 = r36790636 / r36790635;
double r36790638 = 2.5847391640625427e+17;
bool r36790639 = r36790623 <= r36790638;
double r36790640 = r36790627 / r36790623;
double r36790641 = r36790626 / r36790629;
double r36790642 = r36790627 * r36790635;
double r36790643 = r36790642 / r36790633;
double r36790644 = r36790643 * r36790641;
double r36790645 = r36790641 * r36790644;
double r36790646 = r36790645 / r36790623;
double r36790647 = r36790640 * r36790646;
double r36790648 = r36790647 / r36790635;
double r36790649 = r36790639 ? r36790648 : r36790637;
double r36790650 = r36790625 ? r36790637 : r36790649;
return r36790650;
}
\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}\;w \le -5.2266222523996 \cdot 10^{+14}:\\
\;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\
\mathbf{elif}\;w \le 2.5847391640625427 \cdot 10^{+17}:\\
\;\;\;\;\frac{\frac{c0}{w} \cdot \frac{\frac{d}{D} \cdot \left(\frac{c0 \cdot 2}{h} \cdot \frac{d}{D}\right)}{w}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{d \cdot c0}{w \cdot D} \cdot \frac{d \cdot c0}{w \cdot D}}{h} \cdot 2}{2}\\
\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 w < -5.2266222523996e+14 or 2.5847391640625427e+17 < w Initial program 56.7
Simplified50.6
Taylor expanded around 0 57.4
Simplified53.9
Taylor expanded around -inf 59.2
Simplified40.9
if -5.2266222523996e+14 < w < 2.5847391640625427e+17Initial program 59.3
Simplified53.8
Taylor expanded around 0 59.1
Simplified54.2
rmApplied associate-*r*52.3
Final simplification46.9
herbie shell --seed 2019102
(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))))))