\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{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left({\left(\sqrt[3]{d} \cdot \sqrt[3]{d}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\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 h\right) \cdot \frac{1}{\ell}\right)double f(double d, double h, double l, double M, double D) {
double r224710 = d;
double r224711 = h;
double r224712 = r224710 / r224711;
double r224713 = 1.0;
double r224714 = 2.0;
double r224715 = r224713 / r224714;
double r224716 = pow(r224712, r224715);
double r224717 = l;
double r224718 = r224710 / r224717;
double r224719 = pow(r224718, r224715);
double r224720 = r224716 * r224719;
double r224721 = M;
double r224722 = D;
double r224723 = r224721 * r224722;
double r224724 = r224714 * r224710;
double r224725 = r224723 / r224724;
double r224726 = pow(r224725, r224714);
double r224727 = r224715 * r224726;
double r224728 = r224711 / r224717;
double r224729 = r224727 * r224728;
double r224730 = r224713 - r224729;
double r224731 = r224720 * r224730;
return r224731;
}
double f(double d, double h, double l, double M, double D) {
double r224732 = 1.0;
double r224733 = h;
double r224734 = cbrt(r224733);
double r224735 = r224734 * r224734;
double r224736 = r224732 / r224735;
double r224737 = 1.0;
double r224738 = 2.0;
double r224739 = r224737 / r224738;
double r224740 = pow(r224736, r224739);
double r224741 = d;
double r224742 = r224741 / r224734;
double r224743 = pow(r224742, r224739);
double r224744 = r224740 * r224743;
double r224745 = cbrt(r224741);
double r224746 = r224745 * r224745;
double r224747 = pow(r224746, r224739);
double r224748 = l;
double r224749 = r224745 / r224748;
double r224750 = pow(r224749, r224739);
double r224751 = r224747 * r224750;
double r224752 = r224744 * r224751;
double r224753 = M;
double r224754 = D;
double r224755 = r224753 * r224754;
double r224756 = r224738 * r224741;
double r224757 = r224755 / r224756;
double r224758 = pow(r224757, r224738);
double r224759 = r224739 * r224758;
double r224760 = r224759 * r224733;
double r224761 = r224732 / r224748;
double r224762 = r224760 * r224761;
double r224763 = r224737 - r224762;
double r224764 = r224752 * r224763;
return r224764;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.3
rmApplied add-cube-cbrt26.5
Applied *-un-lft-identity26.5
Applied times-frac26.5
Applied unpow-prod-down21.6
rmApplied *-un-lft-identity21.6
Applied add-cube-cbrt21.7
Applied times-frac21.7
Applied unpow-prod-down18.3
Simplified18.3
rmApplied div-inv18.3
Applied associate-*r*16.1
Final simplification16.1
herbie shell --seed 2019199 +o rules:numerics
(FPCore (d h l M D)
:name "Henrywood and Agarwal, Equation (12)"
(* (* (pow (/ d h) (/ 1.0 2.0)) (pow (/ d l) (/ 1.0 2.0))) (- 1.0 (* (* (/ 1.0 2.0) (pow (/ (* M D) (* 2.0 d)) 2.0)) (/ h l)))))