зеркало из https://github.com/github/ruby.git
bignum.c: precise fdiv
* bignum.c (big_fdiv): more precise calculation. [ruby-dev:49915] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
6335fc6fe3
Коммит
c6eb59c439
2
bignum.c
2
bignum.c
|
@ -6102,6 +6102,8 @@ big_fdiv(VALUE x, VALUE y, long ey)
|
|||
l = BIGNUM_LEN(x);
|
||||
ex = l * BITSPERDIG - nlz(BDIGITS(x)[l-1]);
|
||||
ex -= 2 * DBL_BIGDIG * BITSPERDIG;
|
||||
if (ex > BITSPERDIG) ex -= BITSPERDIG;
|
||||
else if (ex > 0) ex = 0;
|
||||
if (ex) x = big_shift(x, ex);
|
||||
|
||||
bigdivrem(x, y, &z, 0);
|
||||
|
|
Загрузка…
Ссылка в новой задаче