\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(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\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}{\frac{2 \cdot d}{D}}\right)}^{2}\right) \cdot \frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right) \cdot \frac{h}{\sqrt[3]{\ell}}\right)double f(double d, double h, double l, double M, double D) {
double r203727 = d;
double r203728 = h;
double r203729 = r203727 / r203728;
double r203730 = 1.0;
double r203731 = 2.0;
double r203732 = r203730 / r203731;
double r203733 = pow(r203729, r203732);
double r203734 = l;
double r203735 = r203727 / r203734;
double r203736 = pow(r203735, r203732);
double r203737 = r203733 * r203736;
double r203738 = M;
double r203739 = D;
double r203740 = r203738 * r203739;
double r203741 = r203731 * r203727;
double r203742 = r203740 / r203741;
double r203743 = pow(r203742, r203731);
double r203744 = r203732 * r203743;
double r203745 = r203728 / r203734;
double r203746 = r203744 * r203745;
double r203747 = r203730 - r203746;
double r203748 = r203737 * r203747;
return r203748;
}
double f(double d, double h, double l, double M, double D) {
double r203749 = d;
double r203750 = cbrt(r203749);
double r203751 = r203750 * r203750;
double r203752 = h;
double r203753 = cbrt(r203752);
double r203754 = r203753 * r203753;
double r203755 = r203751 / r203754;
double r203756 = 1.0;
double r203757 = 2.0;
double r203758 = r203756 / r203757;
double r203759 = pow(r203755, r203758);
double r203760 = r203750 / r203753;
double r203761 = pow(r203760, r203758);
double r203762 = r203759 * r203761;
double r203763 = l;
double r203764 = cbrt(r203763);
double r203765 = r203764 * r203764;
double r203766 = r203751 / r203765;
double r203767 = pow(r203766, r203758);
double r203768 = r203750 / r203764;
double r203769 = pow(r203768, r203758);
double r203770 = r203767 * r203769;
double r203771 = r203762 * r203770;
double r203772 = M;
double r203773 = r203757 * r203749;
double r203774 = D;
double r203775 = r203773 / r203774;
double r203776 = r203772 / r203775;
double r203777 = pow(r203776, r203757);
double r203778 = r203758 * r203777;
double r203779 = 1.0;
double r203780 = r203779 / r203765;
double r203781 = r203778 * r203780;
double r203782 = r203752 / r203764;
double r203783 = r203781 * r203782;
double r203784 = r203756 - r203783;
double r203785 = r203771 * r203784;
return r203785;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 27.0
rmApplied add-cube-cbrt27.2
Applied add-cube-cbrt27.3
Applied times-frac27.3
Applied unpow-prod-down21.8
rmApplied add-cube-cbrt21.9
Applied add-cube-cbrt22.0
Applied times-frac22.1
Applied unpow-prod-down17.9
rmApplied add-cube-cbrt17.9
Applied *-un-lft-identity17.9
Applied times-frac17.9
Applied associate-*r*15.7
rmApplied associate-/l*15.9
Final simplification15.9
herbie shell --seed 2019208
(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)))))