\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}\;M \cdot D \le 2.426480920307366 \cdot 10^{-11}:\\
\;\;\;\;\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 - \sqrt{\left(\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h\right) \cdot \frac{1}{\ell}} \cdot \sqrt{\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)\\
\mathbf{else}:\\
\;\;\;\;\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({\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(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\right)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r272780 = d;
double r272781 = h;
double r272782 = r272780 / r272781;
double r272783 = 1.0;
double r272784 = 2.0;
double r272785 = r272783 / r272784;
double r272786 = pow(r272782, r272785);
double r272787 = l;
double r272788 = r272780 / r272787;
double r272789 = pow(r272788, r272785);
double r272790 = r272786 * r272789;
double r272791 = M;
double r272792 = D;
double r272793 = r272791 * r272792;
double r272794 = r272784 * r272780;
double r272795 = r272793 / r272794;
double r272796 = pow(r272795, r272784);
double r272797 = r272785 * r272796;
double r272798 = r272781 / r272787;
double r272799 = r272797 * r272798;
double r272800 = r272783 - r272799;
double r272801 = r272790 * r272800;
return r272801;
}
double f(double d, double h, double l, double M, double D) {
double r272802 = M;
double r272803 = D;
double r272804 = r272802 * r272803;
double r272805 = 2.426480920307366e-11;
bool r272806 = r272804 <= r272805;
double r272807 = 1.0;
double r272808 = h;
double r272809 = cbrt(r272808);
double r272810 = r272809 * r272809;
double r272811 = r272807 / r272810;
double r272812 = 1.0;
double r272813 = 2.0;
double r272814 = r272812 / r272813;
double r272815 = pow(r272811, r272814);
double r272816 = d;
double r272817 = r272816 / r272809;
double r272818 = pow(r272817, r272814);
double r272819 = r272815 * r272818;
double r272820 = l;
double r272821 = cbrt(r272820);
double r272822 = r272821 * r272821;
double r272823 = r272807 / r272822;
double r272824 = pow(r272823, r272814);
double r272825 = r272816 / r272821;
double r272826 = pow(r272825, r272814);
double r272827 = r272824 * r272826;
double r272828 = r272819 * r272827;
double r272829 = r272813 * r272816;
double r272830 = r272804 / r272829;
double r272831 = pow(r272830, r272813);
double r272832 = r272814 * r272831;
double r272833 = r272832 * r272808;
double r272834 = r272807 / r272820;
double r272835 = r272833 * r272834;
double r272836 = sqrt(r272835);
double r272837 = r272836 * r272836;
double r272838 = r272812 - r272837;
double r272839 = r272828 * r272838;
double r272840 = r272808 / r272820;
double r272841 = r272832 * r272840;
double r272842 = r272812 - r272841;
double r272843 = r272827 * r272842;
double r272844 = r272819 * r272843;
double r272845 = r272806 ? r272839 : r272844;
return r272845;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if (* M D) < 2.426480920307366e-11Initial program 25.6
rmApplied add-cube-cbrt25.8
Applied *-un-lft-identity25.8
Applied times-frac25.8
Applied unpow-prod-down20.9
rmApplied add-cube-cbrt21.0
Applied *-un-lft-identity21.0
Applied times-frac21.0
Applied unpow-prod-down17.0
rmApplied div-inv17.0
Applied associate-*r*13.7
rmApplied add-sqr-sqrt13.7
if 2.426480920307366e-11 < (* M D) Initial program 33.2
rmApplied add-cube-cbrt33.4
Applied *-un-lft-identity33.4
Applied times-frac33.4
Applied unpow-prod-down27.8
rmApplied add-cube-cbrt27.9
Applied *-un-lft-identity27.9
Applied times-frac27.8
Applied unpow-prod-down26.4
rmApplied associate-*l*26.4
Final simplification15.8
herbie shell --seed 2020047
(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)))))