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 <[email protected]> Authored: Mon Aug 25 22:13:44 2014 -0700 Committer: Dmitriy Lyubimov <[email protected]> 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)
