\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]{\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) \cdot \left({\left(\frac{d}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{h \cdot \left(\frac{1}{2} \cdot {\left(\frac{M}{\frac{d \cdot 2}{D}}\right)}^{2}\right)}{\ell}\right)double f(double d, double h, double l, double M, double D) {
double r7328017 = d;
double r7328018 = h;
double r7328019 = r7328017 / r7328018;
double r7328020 = 1.0;
double r7328021 = 2.0;
double r7328022 = r7328020 / r7328021;
double r7328023 = pow(r7328019, r7328022);
double r7328024 = l;
double r7328025 = r7328017 / r7328024;
double r7328026 = pow(r7328025, r7328022);
double r7328027 = r7328023 * r7328026;
double r7328028 = M;
double r7328029 = D;
double r7328030 = r7328028 * r7328029;
double r7328031 = r7328021 * r7328017;
double r7328032 = r7328030 / r7328031;
double r7328033 = pow(r7328032, r7328021);
double r7328034 = r7328022 * r7328033;
double r7328035 = r7328018 / r7328024;
double r7328036 = r7328034 * r7328035;
double r7328037 = r7328020 - r7328036;
double r7328038 = r7328027 * r7328037;
return r7328038;
}
double f(double d, double h, double l, double M, double D) {
double r7328039 = 1.0;
double r7328040 = l;
double r7328041 = cbrt(r7328040);
double r7328042 = r7328041 * r7328041;
double r7328043 = r7328039 / r7328042;
double r7328044 = 1.0;
double r7328045 = 2.0;
double r7328046 = r7328044 / r7328045;
double r7328047 = pow(r7328043, r7328046);
double r7328048 = d;
double r7328049 = r7328048 / r7328041;
double r7328050 = pow(r7328049, r7328046);
double r7328051 = r7328047 * r7328050;
double r7328052 = h;
double r7328053 = cbrt(r7328052);
double r7328054 = r7328048 / r7328053;
double r7328055 = pow(r7328054, r7328046);
double r7328056 = r7328053 * r7328053;
double r7328057 = r7328039 / r7328056;
double r7328058 = pow(r7328057, r7328046);
double r7328059 = r7328055 * r7328058;
double r7328060 = r7328051 * r7328059;
double r7328061 = M;
double r7328062 = r7328048 * r7328045;
double r7328063 = D;
double r7328064 = r7328062 / r7328063;
double r7328065 = r7328061 / r7328064;
double r7328066 = pow(r7328065, r7328045);
double r7328067 = r7328046 * r7328066;
double r7328068 = r7328052 * r7328067;
double r7328069 = r7328068 / r7328040;
double r7328070 = r7328044 - r7328069;
double r7328071 = r7328060 * r7328070;
return r7328071;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.6
rmApplied add-cube-cbrt26.9
Applied *-un-lft-identity26.9
Applied times-frac26.9
Applied unpow-prod-down21.9
rmApplied add-cube-cbrt22.0
Applied *-un-lft-identity22.0
Applied times-frac22.0
Applied unpow-prod-down18.5
rmApplied associate-*r/16.1
rmApplied associate-/l*16.3
Final simplification16.3
herbie shell --seed 2019170
(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)))))