w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;M \cdot D \le -2.0051469694348648 \cdot 10^{+137}:\\
\;\;\;\;\sqrt{1 - \sqrt[3]{\frac{\sqrt[3]{h}}{\ell}} \cdot \left(\left(\left(\frac{D}{d} \cdot \left(\frac{M}{2} \cdot \sqrt[3]{h}\right)\right) \cdot \sqrt[3]{\frac{\sqrt[3]{h}}{\ell}}\right) \cdot \left(\left(\frac{D}{d} \cdot \left(\frac{M}{2} \cdot \sqrt[3]{h}\right)\right) \cdot \sqrt[3]{\frac{\sqrt[3]{h}}{\ell}}\right)\right)} \cdot w0\\
\mathbf{elif}\;M \cdot D \le 355.80150624990387:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{\frac{\frac{\left(M \cdot \left(D \cdot \sqrt[3]{h}\right)\right) \cdot \left(M \cdot \left(D \cdot \sqrt[3]{h}\right)\right)}{d \cdot 2} \cdot \sqrt[3]{h}}{\ell}}{d \cdot 2}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 - \sqrt[3]{\frac{\sqrt[3]{h}}{\ell}} \cdot \left(\left(\left(\frac{D}{d} \cdot \left(\frac{M}{2} \cdot \sqrt[3]{h}\right)\right) \cdot \sqrt[3]{\frac{\sqrt[3]{h}}{\ell}}\right) \cdot \left(\left(\frac{D}{d} \cdot \left(\frac{M}{2} \cdot \sqrt[3]{h}\right)\right) \cdot \sqrt[3]{\frac{\sqrt[3]{h}}{\ell}}\right)\right)} \cdot w0\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r6001601 = w0;
double r6001602 = 1.0;
double r6001603 = M;
double r6001604 = D;
double r6001605 = r6001603 * r6001604;
double r6001606 = 2.0;
double r6001607 = d;
double r6001608 = r6001606 * r6001607;
double r6001609 = r6001605 / r6001608;
double r6001610 = pow(r6001609, r6001606);
double r6001611 = h;
double r6001612 = l;
double r6001613 = r6001611 / r6001612;
double r6001614 = r6001610 * r6001613;
double r6001615 = r6001602 - r6001614;
double r6001616 = sqrt(r6001615);
double r6001617 = r6001601 * r6001616;
return r6001617;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r6001618 = M;
double r6001619 = D;
double r6001620 = r6001618 * r6001619;
double r6001621 = -2.0051469694348648e+137;
bool r6001622 = r6001620 <= r6001621;
double r6001623 = 1.0;
double r6001624 = h;
double r6001625 = cbrt(r6001624);
double r6001626 = l;
double r6001627 = r6001625 / r6001626;
double r6001628 = cbrt(r6001627);
double r6001629 = d;
double r6001630 = r6001619 / r6001629;
double r6001631 = 2.0;
double r6001632 = r6001618 / r6001631;
double r6001633 = r6001632 * r6001625;
double r6001634 = r6001630 * r6001633;
double r6001635 = r6001634 * r6001628;
double r6001636 = r6001635 * r6001635;
double r6001637 = r6001628 * r6001636;
double r6001638 = r6001623 - r6001637;
double r6001639 = sqrt(r6001638);
double r6001640 = w0;
double r6001641 = r6001639 * r6001640;
double r6001642 = 355.80150624990387;
bool r6001643 = r6001620 <= r6001642;
double r6001644 = r6001619 * r6001625;
double r6001645 = r6001618 * r6001644;
double r6001646 = r6001645 * r6001645;
double r6001647 = r6001629 * r6001631;
double r6001648 = r6001646 / r6001647;
double r6001649 = r6001648 * r6001625;
double r6001650 = r6001649 / r6001626;
double r6001651 = r6001650 / r6001647;
double r6001652 = r6001623 - r6001651;
double r6001653 = sqrt(r6001652);
double r6001654 = r6001640 * r6001653;
double r6001655 = r6001643 ? r6001654 : r6001641;
double r6001656 = r6001622 ? r6001641 : r6001655;
return r6001656;
}



Bits error versus w0



Bits error versus M



Bits error versus D



Bits error versus h



Bits error versus l



Bits error versus d
Results
if (* M D) < -2.0051469694348648e+137 or 355.80150624990387 < (* M D) Initial program 27.6
Simplified27.6
rmApplied *-un-lft-identity27.6
Applied add-cube-cbrt27.6
Applied times-frac27.6
Applied associate-*r*27.4
Simplified25.2
rmApplied add-cube-cbrt25.2
Applied associate-*r*25.2
Simplified21.4
if -2.0051469694348648e+137 < (* M D) < 355.80150624990387Initial program 9.1
Simplified9.1
rmApplied *-un-lft-identity9.1
Applied add-cube-cbrt9.1
Applied times-frac9.1
Applied associate-*r*6.2
Simplified5.4
rmApplied div-inv5.4
rmApplied associate-*r/5.4
Applied associate-*l/5.5
Applied associate-*l/5.6
Applied associate-*l/5.0
Simplified5.2
Final simplification9.1
herbie shell --seed 2019151 +o rules:numerics
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
(* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))