From 3679754a95df33dd576cf9f81ae2ef70a84a6649 Mon Sep 17 00:00:00 2001 From: usa Date: Mon, 30 Oct 2006 10:31:01 +0000 Subject: * bignum.c (rb_big2str0): use better approximation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ bignum.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 329aeef870..29b800fd62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon Oct 30 19:28:02 2006 NAKAMURA Usaku + + * bignum.c (rb_big2str0): use better approximation. + Mon Oct 30 18:35:33 2006 Yukihiro Matsumoto * bignum.c (rb_big2str0): wrong allocation length. a patch from diff --git a/bignum.c b/bignum.c index 0bfeffaa52..f0c3a0f63a 100644 --- a/bignum.c +++ b/bignum.c @@ -598,7 +598,7 @@ rb_big2str0(VALUE x, int base, int trim) switch (base) { case 2: break; case 3: - j = j * 647L / 1024; + j = j * 53L / 84 + 1; break; case 4: case 5: case 6: case 7: j /= 2; @@ -607,7 +607,7 @@ rb_big2str0(VALUE x, int base, int trim) j /= 3; break; case 10: case 11: case 12: case 13: case 14: case 15: - j = j * 241L / 800 + 1; + j = j * 28L / 93 + 1; break; case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: -- cgit v1.2.3