[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]