You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by dl...@apache.org on 2014/08/26 07:19:31 UTC
git commit: (NOJIRA) fix: technically unary_- on vector or matrix
semantically must create a clone (as equivalent of mx * -1) and not have any
side effects.
Repository: mahout
Updated Branches:
refs/heads/master 336f0e7db -> 74c10743d
(NOJIRA) fix: technically unary_- on vector or matrix semantically must create a clone
(as equivalent of mx * -1) and not have any side effects.
Project: http://git-wip-us.apache.org/repos/asf/mahout/repo
Commit: http://git-wip-us.apache.org/repos/asf/mahout/commit/74c10743
Tree: http://git-wip-us.apache.org/repos/asf/mahout/tree/74c10743
Diff: http://git-wip-us.apache.org/repos/asf/mahout/diff/74c10743
Branch: refs/heads/master
Commit: 74c10743dfaa3d00b7cea1b89a0432173187866c
Parents: 336f0e7
Author: Dmitriy Lyubimov <dl...@apache.org>
Authored: Mon Aug 25 22:13:44 2014 -0700
Committer: Dmitriy Lyubimov <dl...@apache.org>
Committed: Mon Aug 25 22:16:29 2014 -0700
----------------------------------------------------------------------
.../org/apache/mahout/math/scalabindings/MatrixOps.scala | 7 +++++--
.../org/apache/mahout/math/scalabindings/VectorOps.scala | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mahout/blob/74c10743/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MatrixOps.scala
----------------------------------------------------------------------
diff --git a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MatrixOps.scala b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MatrixOps.scala
index 7abcece..d5ac026 100644
--- a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MatrixOps.scala
+++ b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/MatrixOps.scala
@@ -33,8 +33,11 @@ class MatrixOps(val m: Matrix) {
def ncol = m.columnSize()
-
- def unary_- = m.assign(Functions.NEGATE)
+ /**
+ * Warning: this creates a clone (as in mx * -1), in many applications inplace inversion `mx *= -1`
+ * might be an infinitely better choice.
+ */
+ def unary_- = cloned.assign(Functions.NEGATE)
def +=(that: Matrix) = m.assign(that, Functions.PLUS)
http://git-wip-us.apache.org/repos/asf/mahout/blob/74c10743/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/VectorOps.scala
----------------------------------------------------------------------
diff --git a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/VectorOps.scala b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/VectorOps.scala
index 48c1619..c20354d 100644
--- a/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/VectorOps.scala
+++ b/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/VectorOps.scala
@@ -73,7 +73,7 @@ class VectorOps(private[scalabindings] val v: Vector) {
def nequiv(that: Vector) = !equiv(that)
- def unary_- = v.assign(Functions.NEGATE)
+ def unary_- = cloned.assign(Functions.NEGATE)
def +=(that: Vector) = v.assign(that, Functions.PLUS)