\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 -8.719035499619316652306893010711106561372 \cdot 10^{-213}:\\
\;\;\;\;\left(\left({\left(\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot \left({\left(\frac{1}{\sqrt[3]{\sqrt[3]{h}} \cdot \sqrt[3]{\sqrt[3]{h}}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{\sqrt[3]{h}}}\right)}^{\left(\frac{1}{2}\right)}\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 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\\
\mathbf{elif}\;\ell \le 1.447328258893609698724899706704010579603 \cdot 10^{-216}:\\
\;\;\;\;\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{0.125 \cdot \left({\left(\frac{1}{{d}^{2}}\right)}^{1} \cdot \left({M}^{2} \cdot \left({D}^{2} \cdot h\right)\right)\right)}{\ell}\right)\\
\mathbf{elif}\;\ell \le 2.520281039428512940012033638614055000506 \cdot 10^{217}:\\
\;\;\;\;\left(\left({\left(\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot \left({\left(\frac{1}{\sqrt[3]{\sqrt[3]{h}} \cdot \sqrt[3]{\sqrt[3]{h}}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{\sqrt[3]{h}}}\right)}^{\left(\frac{1}{2}\right)}\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 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\\
\mathbf{elif}\;\ell \le 5.320837894328123150871353915766323994169 \cdot 10^{283}:\\
\;\;\;\;1 \cdot \left({\left({d}^{1}\right)}^{1} \cdot {\left(\frac{1}{{h}^{1} \cdot {\ell}^{1}}\right)}^{0.5}\right)\\
\mathbf{else}:\\
\;\;\;\;\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot \left({d}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\ell}\right)}^{\left(\frac{1}{2}\right)}\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)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r168714 = d;
double r168715 = h;
double r168716 = r168714 / r168715;
double r168717 = 1.0;
double r168718 = 2.0;
double r168719 = r168717 / r168718;
double r168720 = pow(r168716, r168719);
double r168721 = l;
double r168722 = r168714 / r168721;
double r168723 = pow(r168722, r168719);
double r168724 = r168720 * r168723;
double r168725 = M;
double r168726 = D;
double r168727 = r168725 * r168726;
double r168728 = r168718 * r168714;
double r168729 = r168727 / r168728;
double r168730 = pow(r168729, r168718);
double r168731 = r168719 * r168730;
double r168732 = r168715 / r168721;
double r168733 = r168731 * r168732;
double r168734 = r168717 - r168733;
double r168735 = r168724 * r168734;
return r168735;
}
double f(double d, double h, double l, double M, double D) {
double r168736 = l;
double r168737 = -8.719035499619317e-213;
bool r168738 = r168736 <= r168737;
double r168739 = 1.0;
double r168740 = h;
double r168741 = cbrt(r168740);
double r168742 = r168741 * r168741;
double r168743 = r168739 / r168742;
double r168744 = 1.0;
double r168745 = 2.0;
double r168746 = r168744 / r168745;
double r168747 = pow(r168743, r168746);
double r168748 = cbrt(r168741);
double r168749 = r168748 * r168748;
double r168750 = r168739 / r168749;
double r168751 = pow(r168750, r168746);
double r168752 = d;
double r168753 = r168752 / r168748;
double r168754 = pow(r168753, r168746);
double r168755 = r168751 * r168754;
double r168756 = r168747 * r168755;
double r168757 = cbrt(r168736);
double r168758 = r168757 * r168757;
double r168759 = r168739 / r168758;
double r168760 = pow(r168759, r168746);
double r168761 = r168752 / r168757;
double r168762 = pow(r168761, r168746);
double r168763 = r168760 * r168762;
double r168764 = r168756 * r168763;
double r168765 = M;
double r168766 = D;
double r168767 = r168765 * r168766;
double r168768 = r168745 * r168752;
double r168769 = r168767 / r168768;
double r168770 = pow(r168769, r168745);
double r168771 = r168746 * r168770;
double r168772 = r168740 / r168736;
double r168773 = r168771 * r168772;
double r168774 = r168744 - r168773;
double r168775 = r168764 * r168774;
double r168776 = 1.4473282588936097e-216;
bool r168777 = r168736 <= r168776;
double r168778 = r168752 / r168741;
double r168779 = pow(r168778, r168746);
double r168780 = r168747 * r168779;
double r168781 = r168780 * r168763;
double r168782 = 0.125;
double r168783 = pow(r168752, r168745);
double r168784 = r168739 / r168783;
double r168785 = pow(r168784, r168744);
double r168786 = 2.0;
double r168787 = pow(r168765, r168786);
double r168788 = pow(r168766, r168786);
double r168789 = r168788 * r168740;
double r168790 = r168787 * r168789;
double r168791 = r168785 * r168790;
double r168792 = r168782 * r168791;
double r168793 = r168792 / r168736;
double r168794 = r168744 - r168793;
double r168795 = r168781 * r168794;
double r168796 = 2.520281039428513e+217;
bool r168797 = r168736 <= r168796;
double r168798 = 5.320837894328123e+283;
bool r168799 = r168736 <= r168798;
double r168800 = pow(r168752, r168744);
double r168801 = pow(r168800, r168744);
double r168802 = pow(r168740, r168744);
double r168803 = pow(r168736, r168744);
double r168804 = r168802 * r168803;
double r168805 = r168739 / r168804;
double r168806 = 0.5;
double r168807 = pow(r168805, r168806);
double r168808 = r168801 * r168807;
double r168809 = r168744 * r168808;
double r168810 = r168752 / r168740;
double r168811 = pow(r168810, r168746);
double r168812 = pow(r168752, r168746);
double r168813 = r168739 / r168736;
double r168814 = pow(r168813, r168746);
double r168815 = r168812 * r168814;
double r168816 = r168811 * r168815;
double r168817 = r168816 * r168774;
double r168818 = r168799 ? r168809 : r168817;
double r168819 = r168797 ? r168775 : r168818;
double r168820 = r168777 ? r168795 : r168819;
double r168821 = r168738 ? r168775 : r168820;
return r168821;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if l < -8.719035499619317e-213 or 1.4473282588936097e-216 < l < 2.520281039428513e+217Initial program 24.8
rmApplied add-cube-cbrt25.1
Applied *-un-lft-identity25.1
Applied times-frac25.1
Applied unpow-prod-down19.6
rmApplied add-cube-cbrt19.7
Applied *-un-lft-identity19.7
Applied times-frac19.7
Applied unpow-prod-down16.6
rmApplied add-cube-cbrt16.7
Applied *-un-lft-identity16.7
Applied times-frac16.7
Applied unpow-prod-down15.9
if -8.719035499619317e-213 < l < 1.4473282588936097e-216Initial program 37.6
rmApplied add-cube-cbrt37.8
Applied *-un-lft-identity37.8
Applied times-frac37.8
Applied unpow-prod-down37.2
rmApplied add-cube-cbrt37.3
Applied *-un-lft-identity37.3
Applied times-frac37.3
Applied unpow-prod-down30.6
rmApplied associate-*r/13.6
Taylor expanded around 0 31.2
if 2.520281039428513e+217 < l < 5.320837894328123e+283Initial program 32.2
rmApplied add-cube-cbrt32.4
Applied *-un-lft-identity32.4
Applied times-frac32.4
Applied unpow-prod-down26.9
Taylor expanded around 0 29.6
if 5.320837894328123e+283 < l Initial program 29.0
rmApplied div-inv29.0
Applied unpow-prod-down22.0
Final simplification18.2
herbie shell --seed 2019304
(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)))))