Merge pull request #491 from pwendell/java-vector

Adding Java-accessible methods to Vector.scala
This commit is contained in:
Matei Zaharia 2013-02-23 15:55:06 -08:00
commit 8a0ca6f05c

View file

@ -11,12 +11,16 @@ class Vector(val elements: Array[Double]) extends Serializable {
return Vector(length, i => this(i) + other(i))
}
def add(other: Vector) = this + other
def - (other: Vector): Vector = {
if (length != other.length)
throw new IllegalArgumentException("Vectors of different length")
return Vector(length, i => this(i) - other(i))
}
def subtract(other: Vector) = this - other
def dot(other: Vector): Double = {
if (length != other.length)
throw new IllegalArgumentException("Vectors of different length")
@ -61,10 +65,16 @@ class Vector(val elements: Array[Double]) extends Serializable {
this
}
def addInPlace(other: Vector) = this +=other
def * (scale: Double): Vector = Vector(length, i => this(i) * scale)
def multiply (d: Double) = this * d
def / (d: Double): Vector = this * (1 / d)
def divide (d: Double) = this / d
def unary_- = this * -1
def sum = elements.reduceLeft(_ + _)