diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2011-01-24 16:14:18 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2011-01-24 16:14:18 +0000 |
commit | 2e791645a7d4f63f5fe975aa9ee4a80baab04a4d (patch) | |
tree | d710dff8bf4fd657917c2234e1357a4e2b2a54f9 /src | |
parent | 5f43877a43419fe7f56a7b61f5722e08f6b477d8 (diff) | |
download | mpfr-2e791645a7d4f63f5fe975aa9ee4a80baab04a4d.tar.gz |
[src/jn.c] added notes for correctness of the algorithm used
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7420 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src')
-rw-r--r-- | src/jn.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -195,6 +195,8 @@ mpfr_jn (mpfr_ptr res, long n, mpfr_srcptr z, mpfr_rnd_t r) if (absn > 0) mpfr_div_2ui (t, t, absn, MPFR_RNDN); mpfr_set (s, t, MPFR_RNDN); + /* note: we assume here that the maximal error is proportional to + 2^exps, which is true also in the case where s=0 */ exps = MPFR_IS_ZERO (s) ? MPFR_EMIN_MIN : MPFR_GET_EXP (s); expT = exps; for (k = 1; ; k++) @@ -209,6 +211,7 @@ mpfr_jn (mpfr_ptr res, long n, mpfr_srcptr z, mpfr_rnd_t r) mpfr_div_ui (t, t, k, MPFR_RNDN); mpfr_div_ui (t, t, k + absn, MPFR_RNDN); } + /* see above note */ exps = MPFR_IS_ZERO (s) ? MPFR_EMIN_MIN : MPFR_GET_EXP (t); if (exps > expT) expT = exps; |