\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{\frac{1}{2}}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{\frac{1}{2}}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \left(\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{\sqrt[3]{h} \cdot \sqrt[3]{h}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)double f(double d, double h, double l, double M, double D) {
double r302681 = d;
double r302682 = h;
double r302683 = r302681 / r302682;
double r302684 = 1.0;
double r302685 = 2.0;
double r302686 = r302684 / r302685;
double r302687 = pow(r302683, r302686);
double r302688 = l;
double r302689 = r302681 / r302688;
double r302690 = pow(r302689, r302686);
double r302691 = r302687 * r302690;
double r302692 = M;
double r302693 = D;
double r302694 = r302692 * r302693;
double r302695 = r302685 * r302681;
double r302696 = r302694 / r302695;
double r302697 = pow(r302696, r302685);
double r302698 = r302686 * r302697;
double r302699 = r302682 / r302688;
double r302700 = r302698 * r302699;
double r302701 = r302684 - r302700;
double r302702 = r302691 * r302701;
return r302702;
}
double f(double d, double h, double l, double M, double D) {
double r302703 = d;
double r302704 = cbrt(r302703);
double r302705 = r302704 * r302704;
double r302706 = h;
double r302707 = cbrt(r302706);
double r302708 = r302707 * r302707;
double r302709 = r302705 / r302708;
double r302710 = 1.0;
double r302711 = 2.0;
double r302712 = r302710 / r302711;
double r302713 = pow(r302709, r302712);
double r302714 = r302704 / r302707;
double r302715 = pow(r302714, r302712);
double r302716 = r302713 * r302715;
double r302717 = l;
double r302718 = cbrt(r302717);
double r302719 = r302718 * r302718;
double r302720 = r302705 / r302719;
double r302721 = 2.0;
double r302722 = r302712 / r302721;
double r302723 = pow(r302720, r302722);
double r302724 = r302723 * r302723;
double r302725 = r302704 / r302718;
double r302726 = pow(r302725, r302712);
double r302727 = r302724 * r302726;
double r302728 = r302716 * r302727;
double r302729 = M;
double r302730 = D;
double r302731 = r302729 * r302730;
double r302732 = r302711 * r302703;
double r302733 = r302731 / r302732;
double r302734 = pow(r302733, r302711);
double r302735 = r302712 * r302734;
double r302736 = r302708 / r302719;
double r302737 = r302735 * r302736;
double r302738 = r302707 / r302718;
double r302739 = r302737 * r302738;
double r302740 = r302710 - r302739;
double r302741 = r302728 * r302740;
return r302741;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.4
rmApplied add-cube-cbrt26.7
Applied add-cube-cbrt26.8
Applied times-frac26.7
Applied unpow-prod-down21.1
rmApplied add-cube-cbrt21.2
Applied add-cube-cbrt21.4
Applied times-frac21.4
Applied unpow-prod-down17.5
rmApplied add-cube-cbrt17.5
Applied add-cube-cbrt17.5
Applied times-frac17.5
Applied associate-*r*14.8
rmApplied sqr-pow14.8
Final simplification14.8
herbie shell --seed 2020042 +o rules:numerics
(FPCore (d h l M D)
:name "Henrywood and Agarwal, Equation (12)"
:precision binary64
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))))