\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)\begin{array}{l}
\mathbf{if}\;\ell \le -1.803741056830326925130393814369985870376 \cdot 10^{-21} \lor \neg \left(\ell \le 9729194181935.689453125\right):\\
\;\;\;\;\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({\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) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\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 - \frac{\left(1 \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)} \cdot \sqrt[3]{\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 - \frac{\left(1 \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)}\right) \cdot \sqrt[3]{\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 - \frac{\left(1 \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)}\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r329824 = d;
double r329825 = h;
double r329826 = r329824 / r329825;
double r329827 = 1.0;
double r329828 = 2.0;
double r329829 = r329827 / r329828;
double r329830 = pow(r329826, r329829);
double r329831 = l;
double r329832 = r329824 / r329831;
double r329833 = pow(r329832, r329829);
double r329834 = r329830 * r329833;
double r329835 = M;
double r329836 = D;
double r329837 = r329835 * r329836;
double r329838 = r329828 * r329824;
double r329839 = r329837 / r329838;
double r329840 = pow(r329839, r329828);
double r329841 = r329829 * r329840;
double r329842 = r329825 / r329831;
double r329843 = r329841 * r329842;
double r329844 = r329827 - r329843;
double r329845 = r329834 * r329844;
return r329845;
}
double f(double d, double h, double l, double M, double D) {
double r329846 = l;
double r329847 = -1.803741056830327e-21;
bool r329848 = r329846 <= r329847;
double r329849 = 9729194181935.69;
bool r329850 = r329846 <= r329849;
double r329851 = !r329850;
bool r329852 = r329848 || r329851;
double r329853 = d;
double r329854 = cbrt(r329853);
double r329855 = r329854 * r329854;
double r329856 = h;
double r329857 = cbrt(r329856);
double r329858 = r329857 * r329857;
double r329859 = r329855 / r329858;
double r329860 = 1.0;
double r329861 = 2.0;
double r329862 = r329860 / r329861;
double r329863 = pow(r329859, r329862);
double r329864 = r329854 / r329857;
double r329865 = pow(r329864, r329862);
double r329866 = r329863 * r329865;
double r329867 = cbrt(r329846);
double r329868 = r329867 * r329867;
double r329869 = r329855 / r329868;
double r329870 = pow(r329869, r329862);
double r329871 = r329854 / r329867;
double r329872 = pow(r329871, r329862);
double r329873 = r329870 * r329872;
double r329874 = M;
double r329875 = D;
double r329876 = r329874 * r329875;
double r329877 = r329861 * r329853;
double r329878 = r329876 / r329877;
double r329879 = pow(r329878, r329861);
double r329880 = r329862 * r329879;
double r329881 = r329856 / r329846;
double r329882 = r329880 * r329881;
double r329883 = r329860 - r329882;
double r329884 = r329873 * r329883;
double r329885 = r329866 * r329884;
double r329886 = r329866 * r329873;
double r329887 = r329860 * r329879;
double r329888 = r329887 * r329856;
double r329889 = r329861 * r329846;
double r329890 = r329888 / r329889;
double r329891 = r329860 - r329890;
double r329892 = r329886 * r329891;
double r329893 = cbrt(r329892);
double r329894 = r329893 * r329893;
double r329895 = r329894 * r329893;
double r329896 = r329852 ? r329885 : r329895;
return r329896;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if l < -1.803741056830327e-21 or 9729194181935.69 < l Initial program 26.0
rmApplied add-cube-cbrt26.3
Applied add-cube-cbrt26.4
Applied times-frac26.4
Applied unpow-prod-down19.4
rmApplied add-cube-cbrt19.4
Applied add-cube-cbrt19.6
Applied times-frac19.6
Applied unpow-prod-down16.4
rmApplied associate-*l*15.7
if -1.803741056830327e-21 < l < 9729194181935.69Initial program 27.1
rmApplied add-cube-cbrt27.4
Applied add-cube-cbrt27.5
Applied times-frac27.5
Applied unpow-prod-down24.3
rmApplied add-cube-cbrt24.5
Applied add-cube-cbrt24.6
Applied times-frac24.6
Applied unpow-prod-down19.2
rmApplied associate-*l/19.2
Applied frac-times9.9
rmApplied add-cube-cbrt10.1
Final simplification13.8
herbie shell --seed 2019322
(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)))))