aboutsummaryrefslogtreecommitdiff
path: root/mllib/src/test/scala
diff options
context:
space:
mode:
authorYuhao Yang <hhbyyh@gmail.com>2015-09-15 09:58:49 -0700
committerXiangrui Meng <meng@databricks.com>2015-09-15 09:58:49 -0700
commitc35fdcb7e9c01271ce560dba4e0bd37569c8f5d1 (patch)
tree920279e93b9e7d0fddf31b78330e94e258a6c5e1 /mllib/src/test/scala
parent09b7e7c19897549a8622aec095f27b8b38a1a4d3 (diff)
downloadspark-c35fdcb7e9c01271ce560dba4e0bd37569c8f5d1.tar.gz
spark-c35fdcb7e9c01271ce560dba4e0bd37569c8f5d1.tar.bz2
spark-c35fdcb7e9c01271ce560dba4e0bd37569c8f5d1.zip
[SPARK-10491] [MLLIB] move RowMatrix.dspr to BLAS
jira: https://issues.apache.org/jira/browse/SPARK-10491 We implemented dspr with sparse vector support in `RowMatrix`. This method is also used in WeightedLeastSquares and other places. It would be useful to move it to `linalg.BLAS`. Let me know if new UT needed. Author: Yuhao Yang <hhbyyh@gmail.com> Closes #8663 from hhbyyh/movedspr.
Diffstat (limited to 'mllib/src/test/scala')
-rw-r--r--mllib/src/test/scala/org/apache/spark/mllib/linalg/BLASSuite.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/mllib/src/test/scala/org/apache/spark/mllib/linalg/BLASSuite.scala b/mllib/src/test/scala/org/apache/spark/mllib/linalg/BLASSuite.scala
index 8db5c8424a..96e5ffef7a 100644
--- a/mllib/src/test/scala/org/apache/spark/mllib/linalg/BLASSuite.scala
+++ b/mllib/src/test/scala/org/apache/spark/mllib/linalg/BLASSuite.scala
@@ -126,6 +126,31 @@ class BLASSuite extends SparkFunSuite {
}
}
+ test("spr") {
+ // test dense vector
+ val alpha = 0.1
+ val x = new DenseVector(Array(1.0, 2, 2.1, 4))
+ val U = new DenseVector(Array(1.0, 2, 2, 3, 3, 3, 4, 4, 4, 4))
+ val expected = new DenseVector(Array(1.1, 2.2, 2.4, 3.21, 3.42, 3.441, 4.4, 4.8, 4.84, 5.6))
+
+ spr(alpha, x, U)
+ assert(U ~== expected absTol 1e-9)
+
+ val matrix33 = new DenseVector(Array(1.0, 2, 3, 4, 5))
+ withClue("Size of vector must match the rank of matrix") {
+ intercept[Exception] {
+ spr(alpha, x, matrix33)
+ }
+ }
+
+ // test sparse vector
+ val sv = new SparseVector(4, Array(0, 3), Array(1.0, 2))
+ val U2 = new DenseVector(Array(1.0, 2, 2, 3, 3, 3, 4, 4, 4, 4))
+ spr(0.1, sv, U2)
+ val expectedSparse = new DenseVector(Array(1.1, 2.0, 2.0, 3.0, 3.0, 3.0, 4.2, 4.0, 4.0, 4.4))
+ assert(U2 ~== expectedSparse absTol 1e-15)
+ }
+
test("syr") {
val dA = new DenseMatrix(4, 4,
Array(0.0, 1.2, 2.2, 3.1, 1.2, 3.2, 5.3, 4.6, 2.2, 5.3, 1.8, 3.0, 3.1, 4.6, 3.0, 0.8))