Repository: mahout
Updated Branches:
  refs/heads/master d9940489d -> 727e5be85


MAHOUT-1837: fix incorrect <= threshold to > threshold to indicate a dense 
matrix. Refactored name to densityAnalysis(...). closes apache/mahout#244


Project: http://git-wip-us.apache.org/repos/asf/mahout/repo
Commit: http://git-wip-us.apache.org/repos/asf/mahout/commit/727e5be8
Tree: http://git-wip-us.apache.org/repos/asf/mahout/tree/727e5be8
Diff: http://git-wip-us.apache.org/repos/asf/mahout/diff/727e5be8

Branch: refs/heads/master
Commit: 727e5be85c0326d9c009d9cdc361fe47ffa201ad
Parents: d994048
Author: Andrew Palumbo <[email protected]>
Authored: Fri Jun 24 16:56:28 2016 -0400
Committer: Andrew Palumbo <[email protected]>
Committed: Fri Jun 24 17:25:23 2016 -0400

----------------------------------------------------------------------
 .../org/apache/mahout/math/scalabindings/MMul.scala |  8 ++++----
 .../apache/mahout/math/scalabindings/package.scala  |  4 ++--
 .../mahout/math/scalabindings/MathSuite.scala       | 16 ++++++++--------
 .../apache/mahout/sparkbindings/drm/package.scala   |  2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mahout/blob/727e5be8/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MMul.scala
----------------------------------------------------------------------
diff --git 
a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MMul.scala 
b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MMul.scala
index 6389806..2938e5d 100644
--- a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MMul.scala
+++ b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MMul.scala
@@ -35,7 +35,7 @@ object MMul extends MMBinaryFunc {
 
     val (af, bf) = (a.getFlavor, b.getFlavor)
     val backs = (af.getBacking, bf.getBacking)
-    val sd = (af.getStructure, sparsityAnalysis(a), bf.getStructure, 
sparsityAnalysis(b))
+    val sd = (af.getStructure, densityAnalysis(a), bf.getStructure, 
densityAnalysis(b))
 
     val alg: MMulAlg = backs match {
 
@@ -124,7 +124,7 @@ object MMul extends MMBinaryFunc {
     require(r.forall(mxR ⇒ mxR.nrow == a.nrow && mxR.ncol == b.ncol))
     val (m, n) = (a.nrow, b.ncol)
 
-    val mxR = r.getOrElse(if (sparsityAnalysis(a)) a.like(m, n) else b.like(m, 
n))
+    val mxR = r.getOrElse(if (densityAnalysis(a)) a.like(m, n) else b.like(m, 
n))
 
     for (row ← 0 until mxR.nrow; col ← 0 until mxR.ncol) {
       // this vector-vector should be sort of optimized, right?
@@ -269,10 +269,10 @@ object MMul extends MMBinaryFunc {
     val (m, n) = (a.nrow, b.ncol)
 
     // Prefer col-wise result iff a is dense and b is sparse. In all other 
cases default to row-wise.
-    val preferColWiseR = sparsityAnalysis(a) && !sparsityAnalysis(b)
+    val preferColWiseR = densityAnalysis(a) && !densityAnalysis(b)
 
     val mxR = r.getOrElse {
-      (sparsityAnalysis(a), preferColWiseR) match {
+      (densityAnalysis(a), preferColWiseR) match {
         case (false, false) ⇒ b.like(m, n)
         case (false, true) ⇒ b.like(n, m).t
         case (true, false) ⇒ a.like(m, n)

http://git-wip-us.apache.org/repos/asf/mahout/blob/727e5be8/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/package.scala
----------------------------------------------------------------------
diff --git 
a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/package.scala 
b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/package.scala
index 71a2c11..167e192 100644
--- 
a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/package.scala
+++ 
b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/package.scala
@@ -425,7 +425,7 @@ package object scalabindings {
     * @param mx  The matrix to check density of.
     * @param threshold the threshold of non-zero elements above which we 
consider a Matrix Dense
     */
-  def sparsityAnalysis(mx: Matrix, threshold: Double = 0.25): Boolean = {
+  def densityAnalysis(mx: Matrix, threshold: Double = 0.25): Boolean = {
 
     require(threshold >= 0.0 && threshold <= 1.0)
     var n = minSamples
@@ -465,7 +465,7 @@ package object scalabindings {
       else if (mean > threshold + iv) return true // dense
     }
 
-    return mean <= threshold
+    return mean > threshold // if (mean > threshold) dense
 
   }
 

http://git-wip-us.apache.org/repos/asf/mahout/blob/727e5be8/math-scala/src/test/scala/org/apache/mahout/math/scalabindings/MathSuite.scala
----------------------------------------------------------------------
diff --git 
a/math-scala/src/test/scala/org/apache/mahout/math/scalabindings/MathSuite.scala
 
b/math-scala/src/test/scala/org/apache/mahout/math/scalabindings/MathSuite.scala
index 264e375..ee80841 100644
--- 
a/math-scala/src/test/scala/org/apache/mahout/math/scalabindings/MathSuite.scala
+++ 
b/math-scala/src/test/scala/org/apache/mahout/math/scalabindings/MathSuite.scala
@@ -243,24 +243,24 @@ class MathSuite extends FunSuite with MahoutSuite {
     val n = 800
     val mxA = new DenseMatrix(m, n)
 
-    sparsityAnalysis(mxA) shouldBe false
-    sparsityAnalysis(mxA, .5) shouldBe false
-    sparsityAnalysis(mxA + 1) shouldBe true
-    sparsityAnalysis(mxA + 1, .95) shouldBe true
+    densityAnalysis(mxA) shouldBe false
+    densityAnalysis(mxA, .5) shouldBe false
+    densityAnalysis(mxA + 1) shouldBe true
+    densityAnalysis(mxA + 1, .95) shouldBe true
 
     for (i ← 0 until m by 5) mxA(i, ::) := 1
-    info(s"20% detected as dense?:${sparsityAnalysis(mxA)}")
+    info(s"20% detected as dense?:${densityAnalysis(mxA)}")
     mxA := 0
 
     for (i ← 0 until m by 3) mxA(i, ::) := 1
-    info(s"33% detected as dense?:${sparsityAnalysis(mxA)}")
+    info(s"33% detected as dense?:${densityAnalysis(mxA)}")
     mxA := 0
 
     for (i ← 0 until m by 4) mxA(i, ::) := 1
-    info(s"25% detected as dense?:${sparsityAnalysis(mxA)}")
+    info(s"25% detected as dense?:${densityAnalysis(mxA)}")
 
     for (i ← 0 until m by 2) mxA(i, ::) := 1
-    info(s"50% detected as dense?:${sparsityAnalysis(mxA)}")
+    info(s"50% detected as dense?:${densityAnalysis(mxA)}")
 
   }
 

http://git-wip-us.apache.org/repos/asf/mahout/blob/727e5be8/spark/src/main/scala/org/apache/mahout/sparkbindings/drm/package.scala
----------------------------------------------------------------------
diff --git 
a/spark/src/main/scala/org/apache/mahout/sparkbindings/drm/package.scala 
b/spark/src/main/scala/org/apache/mahout/sparkbindings/drm/package.scala
index aca7c3c..f739a43 100644
--- a/spark/src/main/scala/org/apache/mahout/sparkbindings/drm/package.scala
+++ b/spark/src/main/scala/org/apache/mahout/sparkbindings/drm/package.scala
@@ -74,7 +74,7 @@ package object drm {
 
         // Test the density of the data. If the matrix does not meet the
         // requirements for density, convert the Vectors to a sparse Matrix.
-        val resBlock = if (sparsityAnalysis(block)) {
+        val resBlock = if (densityAnalysis(block)) {
           block
         } else {
           new SparseRowMatrix(vectors.length, blockncol, vectors, true, false)

Reply via email to