\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(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{\left(1 \cdot {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)double f(double d, double h, double l, double M, double D) {
double r248742 = d;
double r248743 = h;
double r248744 = r248742 / r248743;
double r248745 = 1.0;
double r248746 = 2.0;
double r248747 = r248745 / r248746;
double r248748 = pow(r248744, r248747);
double r248749 = l;
double r248750 = r248742 / r248749;
double r248751 = pow(r248750, r248747);
double r248752 = r248748 * r248751;
double r248753 = M;
double r248754 = D;
double r248755 = r248753 * r248754;
double r248756 = r248746 * r248742;
double r248757 = r248755 / r248756;
double r248758 = pow(r248757, r248746);
double r248759 = r248747 * r248758;
double r248760 = r248743 / r248749;
double r248761 = r248759 * r248760;
double r248762 = r248745 - r248761;
double r248763 = r248752 * r248762;
return r248763;
}
double f(double d, double h, double l, double M, double D) {
double r248764 = 1.0;
double r248765 = h;
double r248766 = cbrt(r248765);
double r248767 = r248766 * r248766;
double r248768 = r248764 / r248767;
double r248769 = 1.0;
double r248770 = 2.0;
double r248771 = r248769 / r248770;
double r248772 = pow(r248768, r248771);
double r248773 = d;
double r248774 = r248773 / r248766;
double r248775 = pow(r248774, r248771);
double r248776 = r248772 * r248775;
double r248777 = l;
double r248778 = cbrt(r248777);
double r248779 = r248778 * r248778;
double r248780 = r248764 / r248779;
double r248781 = pow(r248780, r248771);
double r248782 = r248773 / r248778;
double r248783 = pow(r248782, r248771);
double r248784 = r248781 * r248783;
double r248785 = r248776 * r248784;
double r248786 = M;
double r248787 = r248770 * r248773;
double r248788 = D;
double r248789 = r248787 / r248788;
double r248790 = r248786 / r248789;
double r248791 = pow(r248790, r248770);
double r248792 = r248769 * r248791;
double r248793 = r248792 * r248765;
double r248794 = r248770 * r248777;
double r248795 = r248793 / r248794;
double r248796 = r248769 - r248795;
double r248797 = r248785 * r248796;
return r248797;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 27.1
rmApplied add-cube-cbrt27.3
Applied *-un-lft-identity27.3
Applied times-frac27.3
Applied unpow-prod-down23.6
rmApplied add-cube-cbrt23.8
Applied *-un-lft-identity23.8
Applied times-frac23.8
Applied unpow-prod-down18.5
rmApplied associate-*l/18.5
Applied frac-times16.3
rmApplied associate-/l*16.4
Final simplification16.4
herbie shell --seed 2020056 +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)))))