\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 - \left(0.125 \cdot \left({\left(\frac{1}{{d}^{2}}\right)}^{1} \cdot \left({M}^{2} \cdot \left({D}^{2} \cdot h\right)\right)\right)\right) \cdot \frac{1}{\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 r217792 = d;
double r217793 = h;
double r217794 = r217792 / r217793;
double r217795 = 1.0;
double r217796 = 2.0;
double r217797 = r217795 / r217796;
double r217798 = pow(r217794, r217797);
double r217799 = l;
double r217800 = r217792 / r217799;
double r217801 = pow(r217800, r217797);
double r217802 = r217798 * r217801;
double r217803 = M;
double r217804 = D;
double r217805 = r217803 * r217804;
double r217806 = r217796 * r217792;
double r217807 = r217805 / r217806;
double r217808 = pow(r217807, r217796);
double r217809 = r217797 * r217808;
double r217810 = r217793 / r217799;
double r217811 = r217809 * r217810;
double r217812 = r217795 - r217811;
double r217813 = r217802 * r217812;
return r217813;
}
double f(double d, double h, double l, double M, double D) {
double r217814 = l;
double r217815 = -8.719035499619317e-213;
bool r217816 = r217814 <= r217815;
double r217817 = 1.0;
double r217818 = h;
double r217819 = cbrt(r217818);
double r217820 = r217819 * r217819;
double r217821 = r217817 / r217820;
double r217822 = 1.0;
double r217823 = 2.0;
double r217824 = r217822 / r217823;
double r217825 = pow(r217821, r217824);
double r217826 = cbrt(r217819);
double r217827 = r217826 * r217826;
double r217828 = r217817 / r217827;
double r217829 = pow(r217828, r217824);
double r217830 = d;
double r217831 = r217830 / r217826;
double r217832 = pow(r217831, r217824);
double r217833 = r217829 * r217832;
double r217834 = r217825 * r217833;
double r217835 = cbrt(r217814);
double r217836 = r217835 * r217835;
double r217837 = r217817 / r217836;
double r217838 = pow(r217837, r217824);
double r217839 = r217830 / r217835;
double r217840 = pow(r217839, r217824);
double r217841 = r217838 * r217840;
double r217842 = r217834 * r217841;
double r217843 = M;
double r217844 = D;
double r217845 = r217843 * r217844;
double r217846 = r217823 * r217830;
double r217847 = r217845 / r217846;
double r217848 = pow(r217847, r217823);
double r217849 = r217824 * r217848;
double r217850 = r217818 / r217814;
double r217851 = r217849 * r217850;
double r217852 = r217822 - r217851;
double r217853 = r217842 * r217852;
double r217854 = 1.4473282588936097e-216;
bool r217855 = r217814 <= r217854;
double r217856 = r217830 / r217819;
double r217857 = pow(r217856, r217824);
double r217858 = r217825 * r217857;
double r217859 = r217858 * r217841;
double r217860 = 0.125;
double r217861 = pow(r217830, r217823);
double r217862 = r217817 / r217861;
double r217863 = pow(r217862, r217822);
double r217864 = 2.0;
double r217865 = pow(r217843, r217864);
double r217866 = pow(r217844, r217864);
double r217867 = r217866 * r217818;
double r217868 = r217865 * r217867;
double r217869 = r217863 * r217868;
double r217870 = r217860 * r217869;
double r217871 = r217817 / r217814;
double r217872 = r217870 * r217871;
double r217873 = r217822 - r217872;
double r217874 = r217859 * r217873;
double r217875 = 2.520281039428513e+217;
bool r217876 = r217814 <= r217875;
double r217877 = 5.320837894328123e+283;
bool r217878 = r217814 <= r217877;
double r217879 = pow(r217830, r217822);
double r217880 = pow(r217879, r217822);
double r217881 = pow(r217818, r217822);
double r217882 = pow(r217814, r217822);
double r217883 = r217881 * r217882;
double r217884 = r217817 / r217883;
double r217885 = 0.5;
double r217886 = pow(r217884, r217885);
double r217887 = r217880 * r217886;
double r217888 = r217822 * r217887;
double r217889 = r217830 / r217818;
double r217890 = pow(r217889, r217824);
double r217891 = pow(r217830, r217824);
double r217892 = pow(r217871, r217824);
double r217893 = r217891 * r217892;
double r217894 = r217890 * r217893;
double r217895 = r217894 * r217852;
double r217896 = r217878 ? r217888 : r217895;
double r217897 = r217876 ? r217853 : r217896;
double r217898 = r217855 ? r217874 : r217897;
double r217899 = r217816 ? r217853 : r217898;
return r217899;
}



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 div-inv30.6
Applied 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 +o rules:numerics
(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)))))