\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{\sqrt[3]{d} \cdot \sqrt[3]{d}}{1}\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(\left(M \cdot D\right) \cdot \frac{1}{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 r249946 = d;
double r249947 = h;
double r249948 = r249946 / r249947;
double r249949 = 1.0;
double r249950 = 2.0;
double r249951 = r249949 / r249950;
double r249952 = pow(r249948, r249951);
double r249953 = l;
double r249954 = r249946 / r249953;
double r249955 = pow(r249954, r249951);
double r249956 = r249952 * r249955;
double r249957 = M;
double r249958 = D;
double r249959 = r249957 * r249958;
double r249960 = r249950 * r249946;
double r249961 = r249959 / r249960;
double r249962 = pow(r249961, r249950);
double r249963 = r249951 * r249962;
double r249964 = r249947 / r249953;
double r249965 = r249963 * r249964;
double r249966 = r249949 - r249965;
double r249967 = r249956 * r249966;
return r249967;
}
double f(double d, double h, double l, double M, double D) {
double r249968 = 1.0;
double r249969 = h;
double r249970 = cbrt(r249969);
double r249971 = r249970 * r249970;
double r249972 = r249968 / r249971;
double r249973 = 1.0;
double r249974 = 2.0;
double r249975 = r249973 / r249974;
double r249976 = pow(r249972, r249975);
double r249977 = d;
double r249978 = r249977 / r249970;
double r249979 = pow(r249978, r249975);
double r249980 = r249976 * r249979;
double r249981 = cbrt(r249977);
double r249982 = r249981 * r249981;
double r249983 = r249982 / r249968;
double r249984 = pow(r249983, r249975);
double r249985 = l;
double r249986 = r249981 / r249985;
double r249987 = pow(r249986, r249975);
double r249988 = r249984 * r249987;
double r249989 = r249980 * r249988;
double r249990 = M;
double r249991 = D;
double r249992 = r249990 * r249991;
double r249993 = r249974 * r249977;
double r249994 = r249968 / r249993;
double r249995 = r249992 * r249994;
double r249996 = pow(r249995, r249974);
double r249997 = r249975 * r249996;
double r249998 = r249997 * r249969;
double r249999 = r249968 / r249985;
double r250000 = r249998 * r249999;
double r250001 = r249973 - r250000;
double r250002 = r249989 * r250001;
return r250002;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.1
rmApplied add-cube-cbrt26.4
Applied *-un-lft-identity26.4
Applied times-frac26.4
Applied unpow-prod-down21.5
rmApplied *-un-lft-identity21.5
Applied add-cube-cbrt21.6
Applied times-frac21.6
Applied unpow-prod-down17.9
rmApplied div-inv18.0
Applied associate-*r*15.8
rmApplied div-inv15.8
Final simplification15.8
herbie shell --seed 2019362
(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)))))