ruby-changes:9201
From: mame <ko1@a...>
Date: Sun, 14 Dec 2008 21:15:22 +0900 (JST)
Subject: [ruby-changes:9201] Ruby:r20738 (trunk): * bignum.c (bigmul1_karatsuba): fix comment and refactoring.
mame 2008-12-14 21:15:07 +0900 (Sun, 14 Dec 2008) New Revision: 20738 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20738 Log: * bignum.c (bigmul1_karatsuba): fix comment and refactoring. Modified files: trunk/ChangeLog trunk/bignum.c Index: ChangeLog =================================================================== --- ChangeLog (revision 20737) +++ ChangeLog (revision 20738) @@ -1,3 +1,7 @@ +Sun Dec 14 21:13:02 2008 Yusuke Endoh <mame@t...> + + * bignum.c (bigmul1_karatsuba): fix comment and refactoring. + Sun Dec 14 14:53:41 2008 Yusuke Endoh <mame@t...> * bignum.c (bigmul1_balance, bigmul1_karatsuba): remove all Index: bignum.c =================================================================== --- bignum.c (revision 20737) +++ bignum.c (revision 20738) @@ -1668,7 +1668,7 @@ * where * z2 = xh * yh * z0 = xl * yl - * z1 = (xh + xl) * (yh + yl) - x2 - x0 + * z1 = (xh + xl) * (yh + yl) - z2 - z0 * * ref: http://en.wikipedia.org/wiki/Karatsuba_algorithm */ @@ -1683,7 +1683,7 @@ /* copy t1 into high bytes of the result (z2) */ MEMCPY(zds + 2 * n, BDIGITS(t1), BDIGIT, t1n); - for (i = 2 * n + t1n; i < xn + yn; i++) BDIGITS(z)[i] = 0; + for (i = 2 * n + t1n; i < xn + yn; i++) zds[i] = 0; if (!BIGZEROP(xl) && !BIGZEROP(yl)) { /* t2 <- xl * yl */ @@ -1692,7 +1692,7 @@ /* copy t2 into low bytes of the result (z0) */ MEMCPY(zds, BDIGITS(t2), BDIGIT, t2n); - for (i = t2n; i < 2 * n; i++) BDIGITS(z)[i] = 0; + for (i = t2n; i < 2 * n; i++) zds[i] = 0; /* subtract t2 from middle bytes of the result (z1) */ i = xn + yn - n; @@ -1700,7 +1700,7 @@ } else { /* copy 0 into low bytes of the result (z0) */ - for (i = 0; i < 2 * n; i++) BDIGITS(z)[i] = 0; + for (i = 0; i < 2 * n; i++) zds[i] = 0; } /* subtract t1 from middle bytes of the result (z1) */ -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/