You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2015/12/11 10:44:24 UTC

incubator-systemml git commit: Fix libmatrixmult vector-subtract primitive, incl improved test

Repository: incubator-systemml
Updated Branches:
  refs/heads/master 6886e07df -> 807ed026e


Fix libmatrixmult vector-subtract primitive, incl improved test 

Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/807ed026
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/807ed026
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/807ed026

Branch: refs/heads/master
Commit: 807ed026e811f3e1927ff2e41470f6c44f9ac527
Parents: 6886e07
Author: Matthias Boehm <mb...@us.ibm.com>
Authored: Fri Dec 11 01:44:09 2015 -0800
Committer: Matthias Boehm <mb...@us.ibm.com>
Committed: Fri Dec 11 01:44:09 2015 -0800

----------------------------------------------------------------------
 .../apache/sysml/runtime/matrix/data/LibMatrixMult.java   | 10 +++++-----
 .../functions/binary/matrix/MapMultChainTest.java         |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/807ed026/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixMult.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixMult.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixMult.java
index e234640..a262ed8 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixMult.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixMult.java
@@ -1612,11 +1612,11 @@ public class LibMatrixMult
 			for( int j=0, aix=bi*cd; j < blocksize; j++, aix+=cd)
 				tmp[j] = dotProduct(a, b, aix, 0, cd);
 			
-			//multiply/substract weights (in-place), if required
+			//multiply/subtract weights (in-place), if required
 			if( weights ) 
 				vectMultiply(w, tmp, bi, 0, blocksize);	
 			else if( weights2 )
-				vectSubstract(w, tmp, bi, 0, blocksize);
+				vectSubtract(w, tmp, bi, 0, blocksize);
 				
 			//compute 2nd matrix vector for row block and aggregate
 			for (int j=0, aix=bi*cd; j < blocksize; j+=4, aix+=4*cd)
@@ -1679,7 +1679,7 @@ public class LibMatrixMult
 			if( weights ) 
 				vectMultiply(w, tmp, bi, 0, tmplen);	
 			else if( weights2 )
-				vectSubstract(w, tmp, bi, 0, tmplen);
+				vectSubtract(w, tmp, bi, 0, tmplen);
 		
 			//compute 2nd matrix vector for row block and aggregate
 			for( int j=0; j < tmplen; j++) {
@@ -3483,13 +3483,13 @@ public class LibMatrixMult
 	 * @param ci
 	 * @param len
 	 */
-	private static void vectSubstract( double[] a, double[] c, int ai, int ci, final int len )
+	private static void vectSubtract( double[] a, double[] c, int ai, int ci, final int len )
 	{
 		final int bn = len%8;
 		
 		//rest, not aligned to 8-blocks
 		for( int j = 0; j < bn; j++, ai++, ci++)
-			c[ ci ] += a[ ai ];
+			c[ ci ] -= a[ ai ];
 		
 		//unrolled 8-block  (for better instruction-level parallelism)
 		for( int j = bn; j < len; j+=8, ai+=8, ci+=8) 

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/807ed026/src/test/java/org/apache/sysml/test/integration/functions/binary/matrix/MapMultChainTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/binary/matrix/MapMultChainTest.java b/src/test/java/org/apache/sysml/test/integration/functions/binary/matrix/MapMultChainTest.java
index 5e597d6..d23ac04 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/binary/matrix/MapMultChainTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/binary/matrix/MapMultChainTest.java
@@ -47,7 +47,7 @@ public class MapMultChainTest extends AutomatedTestBase
 	private final static String TEST_CLASS_DIR = TEST_DIR + MapMultChainTest.class.getSimpleName() + "/";
 	private final static double eps = 1e-8;
 	
-	private final static int rowsX = 3468;
+	private final static int rowsX = 3471; //mod 8 = 7
 	private final static int colsX = 567;
 	
 	private final static double sparsity1 = 0.7;