\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 \frac{-6609599785435127}{7.58065474756205534740712640850831325809 \cdot 10^{227}}:\\
\;\;\;\;\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 \frac{4494006614860827}{3.105036184601417870297958976925005110514 \cdot 10^{231}}:\\
\;\;\;\;\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{\frac{1}{4} \cdot \left({\left(\frac{1}{{d}^{2}}\right)}^{1} \cdot \left({M}^{2} \cdot \left({D}^{2} \cdot h\right)\right)\right)}{2 \cdot \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)}^{\left(\frac{1}{2}\right)}\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 r162722 = d;
double r162723 = h;
double r162724 = r162722 / r162723;
double r162725 = 1.0;
double r162726 = 2.0;
double r162727 = r162725 / r162726;
double r162728 = pow(r162724, r162727);
double r162729 = l;
double r162730 = r162722 / r162729;
double r162731 = pow(r162730, r162727);
double r162732 = r162728 * r162731;
double r162733 = M;
double r162734 = D;
double r162735 = r162733 * r162734;
double r162736 = r162726 * r162722;
double r162737 = r162735 / r162736;
double r162738 = pow(r162737, r162726);
double r162739 = r162727 * r162738;
double r162740 = r162723 / r162729;
double r162741 = r162739 * r162740;
double r162742 = r162725 - r162741;
double r162743 = r162732 * r162742;
return r162743;
}
double f(double d, double h, double l, double M, double D) {
double r162744 = l;
double r162745 = -6609599785435127.0;
double r162746 = 7.580654747562055e+227;
double r162747 = r162745 / r162746;
bool r162748 = r162744 <= r162747;
double r162749 = 1.0;
double r162750 = h;
double r162751 = cbrt(r162750);
double r162752 = r162751 * r162751;
double r162753 = r162749 / r162752;
double r162754 = 1.0;
double r162755 = 2.0;
double r162756 = r162754 / r162755;
double r162757 = pow(r162753, r162756);
double r162758 = cbrt(r162751);
double r162759 = r162758 * r162758;
double r162760 = r162749 / r162759;
double r162761 = pow(r162760, r162756);
double r162762 = d;
double r162763 = r162762 / r162758;
double r162764 = pow(r162763, r162756);
double r162765 = r162761 * r162764;
double r162766 = r162757 * r162765;
double r162767 = cbrt(r162744);
double r162768 = r162767 * r162767;
double r162769 = r162749 / r162768;
double r162770 = pow(r162769, r162756);
double r162771 = r162762 / r162767;
double r162772 = pow(r162771, r162756);
double r162773 = r162770 * r162772;
double r162774 = r162766 * r162773;
double r162775 = M;
double r162776 = D;
double r162777 = r162775 * r162776;
double r162778 = r162755 * r162762;
double r162779 = r162777 / r162778;
double r162780 = pow(r162779, r162755);
double r162781 = r162756 * r162780;
double r162782 = r162750 / r162744;
double r162783 = r162781 * r162782;
double r162784 = r162754 - r162783;
double r162785 = r162774 * r162784;
double r162786 = 4494006614860827.0;
double r162787 = 3.105036184601418e+231;
double r162788 = r162786 / r162787;
bool r162789 = r162744 <= r162788;
double r162790 = r162762 / r162751;
double r162791 = pow(r162790, r162756);
double r162792 = r162757 * r162791;
double r162793 = r162792 * r162773;
double r162794 = 4.0;
double r162795 = r162754 / r162794;
double r162796 = pow(r162762, r162755);
double r162797 = r162749 / r162796;
double r162798 = pow(r162797, r162754);
double r162799 = 2.0;
double r162800 = pow(r162775, r162799);
double r162801 = pow(r162776, r162799);
double r162802 = r162801 * r162750;
double r162803 = r162800 * r162802;
double r162804 = r162798 * r162803;
double r162805 = r162795 * r162804;
double r162806 = r162755 * r162744;
double r162807 = r162805 / r162806;
double r162808 = r162754 - r162807;
double r162809 = r162793 * r162808;
double r162810 = 2.520281039428513e+217;
bool r162811 = r162744 <= r162810;
double r162812 = 5.320837894328123e+283;
bool r162813 = r162744 <= r162812;
double r162814 = pow(r162762, r162754);
double r162815 = pow(r162814, r162754);
double r162816 = pow(r162750, r162754);
double r162817 = pow(r162744, r162754);
double r162818 = r162816 * r162817;
double r162819 = r162749 / r162818;
double r162820 = pow(r162819, r162756);
double r162821 = r162815 * r162820;
double r162822 = r162754 * r162821;
double r162823 = r162762 / r162750;
double r162824 = pow(r162823, r162756);
double r162825 = pow(r162762, r162756);
double r162826 = r162749 / r162744;
double r162827 = pow(r162826, r162756);
double r162828 = r162825 * r162827;
double r162829 = r162824 * r162828;
double r162830 = r162829 * r162784;
double r162831 = r162813 ? r162822 : r162830;
double r162832 = r162811 ? r162785 : r162831;
double r162833 = r162789 ? r162809 : r162832;
double r162834 = r162748 ? r162785 : r162833;
return r162834;
}



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-*l/30.6
Applied frac-times13.6
Taylor expanded around 0 31.2
Simplified31.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
Simplified29.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)))))