From 44fc80b67c6e2fb85fb2bddfece44b34c9061e1d Mon Sep 17 00:00:00 2001 From: danielblazevski Date: Mon, 30 May 2016 12:34:58 -0400 Subject: [PATCH 1/6] added addition/subtraction and mult by scalar to Vector.scala --- .../src/main/scala/org/apache/flink/ml/math/Vector.scala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala index e52328d37240c..a3a23a9419066 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala @@ -19,6 +19,7 @@ package org.apache.flink.ml.math import breeze.linalg.{SparseVector => BreezeSparseVector, DenseVector => BreezeDenseVector, Vector => BreezeVector} +import org.apache.flink.ml.math.Breeze._ /** Base trait for Vectors * @@ -81,6 +82,13 @@ trait Vector extends Serializable { false } } + + def +(other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze + + def -(other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze + + def *(scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze + } object Vector{ From bac684c19e2427b7db41f3430378ef050e660b03 Mon Sep 17 00:00:00 2001 From: danielblazevski Date: Mon, 30 May 2016 12:41:19 -0400 Subject: [PATCH 2/6] moved to only DenseVector.scala --- .../scala/org/apache/flink/ml/math/DenseVector.scala | 9 +++++++++ .../src/main/scala/org/apache/flink/ml/math/Vector.scala | 8 -------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala index 5e70741ee3623..92ccdc7225707 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala @@ -20,6 +20,8 @@ package org.apache.flink.ml.math import breeze.linalg.{SparseVector => BreezeSparseVector, DenseVector => BreezeDenseVector, Vector => BreezeVector} +import org.apache.flink.ml.math.Breeze._ + /** * Dense vector implementation of [[Vector]]. The data is represented in a continuous array of * doubles. @@ -145,6 +147,13 @@ case class DenseVector( SparseVector.fromCOO(size, nonZero) } + + def +(other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze + + def -(other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze + + def *(scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze + } object DenseVector { diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala index a3a23a9419066..e52328d37240c 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/Vector.scala @@ -19,7 +19,6 @@ package org.apache.flink.ml.math import breeze.linalg.{SparseVector => BreezeSparseVector, DenseVector => BreezeDenseVector, Vector => BreezeVector} -import org.apache.flink.ml.math.Breeze._ /** Base trait for Vectors * @@ -82,13 +81,6 @@ trait Vector extends Serializable { false } } - - def +(other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze - - def -(other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze - - def *(scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze - } object Vector{ From 073149403253a4891223ea46bfc3d8455382703b Mon Sep 17 00:00:00 2001 From: danielblazevski Date: Mon, 30 May 2016 13:08:10 -0400 Subject: [PATCH 3/6] added ops to SparseVector.scala --- .../scala/org/apache/flink/ml/math/SparseVector.scala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala index fec018f436539..abdd985ee4df8 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala @@ -19,6 +19,7 @@ package org.apache.flink.ml.math import breeze.linalg.{SparseVector => BreezeSparseVector, DenseVector => BreezeDenseVector, Vector => BreezeVector} +import org.apache.flink.ml.math.Breeze._ import scala.util.Sorting @@ -175,6 +176,13 @@ case class SparseVector( java.util.Arrays.binarySearch(indices, 0, indices.length, index) } + + def +(other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze + + def -(other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze + + def *(scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze + } object SparseVector { From 7f637183179d5eb0d16e0a92b1eb6c585806cd29 Mon Sep 17 00:00:00 2001 From: danielblazevski Date: Mon, 30 May 2016 14:09:00 -0400 Subject: [PATCH 4/6] added mult by scalar on left --- .../src/main/scala/org/apache/flink/ml/math/DenseVector.scala | 4 ++++ .../main/scala/org/apache/flink/ml/math/SparseVector.scala | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala index 92ccdc7225707..2c8e12436601b 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala @@ -158,6 +158,10 @@ case class DenseVector( object DenseVector { + implicit class ScalarVectorMult(scalar: Double) { + def *(vector: DenseVector): Vector = vector * scalar + } + def apply(values: Double*): DenseVector = { new DenseVector(values.toArray) } diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala index abdd985ee4df8..d131d4d09f7f1 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala @@ -187,6 +187,10 @@ case class SparseVector( object SparseVector { + implicit class ScalarVectorMult(scalar: Double) { + def *(vector: SparseVector): Vector = vector * scalar + } + /** Constructs a sparse vector from a coordinate list (COO) representation where each entry * is stored as a tuple of (index, value). * From 7b9da60fb797e07b168d1a5a84fe8fc407799f4e Mon Sep 17 00:00:00 2001 From: danielblazevski Date: Tue, 31 May 2016 06:59:16 -0400 Subject: [PATCH 5/6] changed case of Scalar to scalar --- .../src/main/scala/org/apache/flink/ml/math/DenseVector.scala | 2 +- .../src/main/scala/org/apache/flink/ml/math/SparseVector.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala index 2c8e12436601b..c1a0f0d4011bf 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala @@ -158,7 +158,7 @@ case class DenseVector( object DenseVector { - implicit class ScalarVectorMult(scalar: Double) { + implicit class scalarVectorMult(scalar: Double) { def *(vector: DenseVector): Vector = vector * scalar } diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala index d131d4d09f7f1..a65cc65dae1da 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala @@ -187,7 +187,7 @@ case class SparseVector( object SparseVector { - implicit class ScalarVectorMult(scalar: Double) { + implicit class scalarVectorMult(scalar: Double) { def *(vector: SparseVector): Vector = vector * scalar } From 47db1ab7ce523390bd957380eea1f6153ffdc7c2 Mon Sep 17 00:00:00 2001 From: danielblazevski Date: Tue, 31 May 2016 07:04:29 -0400 Subject: [PATCH 6/6] added spaces: Travis wants spaces after each plus sign --- .../main/scala/org/apache/flink/ml/math/DenseVector.scala | 8 ++++---- .../scala/org/apache/flink/ml/math/SparseVector.scala | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala index c1a0f0d4011bf..c2ac2211da9ce 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala @@ -148,18 +148,18 @@ case class DenseVector( SparseVector.fromCOO(size, nonZero) } - def +(other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze + def + (other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze - def -(other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze + def - (other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze - def *(scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze + def * (scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze } object DenseVector { implicit class scalarVectorMult(scalar: Double) { - def *(vector: DenseVector): Vector = vector * scalar + def * (vector: DenseVector): Vector = vector * scalar } def apply(values: Double*): DenseVector = { diff --git a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala index a65cc65dae1da..546aadb9cb611 100644 --- a/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala +++ b/flink-libraries/flink-ml/src/main/scala/org/apache/flink/ml/math/SparseVector.scala @@ -177,18 +177,18 @@ case class SparseVector( java.util.Arrays.binarySearch(indices, 0, indices.length, index) } - def +(other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze + def + (other: Vector): Vector = (this.asBreeze + other.asBreeze).fromBreeze - def -(other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze + def - (other: Vector): Vector = (this.asBreeze - other.asBreeze).fromBreeze - def *(scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze + def * (scalar: Double): Vector = (scalar * this.asBreeze).fromBreeze } object SparseVector { implicit class scalarVectorMult(scalar: Double) { - def *(vector: SparseVector): Vector = vector * scalar + def * (vector: SparseVector): Vector = vector * scalar } /** Constructs a sparse vector from a coordinate list (COO) representation where each entry