Package edu.princeton.cs.algs4
Class Vector
- Object
-
- edu.princeton.cs.algs4.Vector
-
public class Vector extends Object
TheVector
class represents a d-dimensional Euclidean vector. Vectors are immutable: their values cannot be changed after they are created. It includes methods for addition, subtraction, dot product, scalar product, unit vector, Euclidean norm, and the Euclidean distance between two vectors.For additional documentation, see Section 1.2 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
- Author:
- Robert Sedgewick, Kevin Wayne
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description double
cartesian(int i)
Returns the ith cartesian coordinate.int
dimension()
Returns the dimension of this vector.Vector
direction()
Returns a unit vector in the direction of this vector.double
distanceTo(Vector that)
Returns the Euclidean distance between this vector and the specified vector.double
dot(Vector that)
Returns the dot product of this vector with the specified vector.double
magnitude()
Returns the magnitude of this vector.static void
main(String[] args)
Unit tests theVector
data type.Vector
minus(Vector that)
Returns the difference between this vector and the specified vector.Vector
plus(Vector that)
Returns the sum of this vector and the specified vector.Vector
scale(double alpha)
Returns the scalar-vector product of this vector and the specified scalarString
toString()
Returns a string representation of this vector.
-
-
-
Constructor Detail
-
Vector
public Vector(int d)
Initializes a d-dimensional zero vector.- Parameters:
d
- the dimension of the vector
-
Vector
public Vector(double... a)
Initializes a vector from either an array or a vararg list. The vararg syntax supports a constructor that takes a variable number of arguments such as Vector x = new Vector(1.0, 2.0, 3.0, 4.0).- Parameters:
a
- the array or vararg list
-
-
Method Detail
-
dimension
public int dimension()
Returns the dimension of this vector.- Returns:
- the dimension of this vector
-
dot
public double dot(Vector that)
Returns the dot product of this vector with the specified vector.- Parameters:
that
- the other vector- Returns:
- the dot product of this vector and that vector
- Throws:
IllegalArgumentException
- if the dimensions of the two vectors are not equal
-
magnitude
public double magnitude()
Returns the magnitude of this vector. This is also known as the L2 norm or the Euclidean norm.- Returns:
- the magnitude of this vector
-
distanceTo
public double distanceTo(Vector that)
Returns the Euclidean distance between this vector and the specified vector.- Parameters:
that
- the other vector- Returns:
- the Euclidean distance between this vector and that vector
- Throws:
IllegalArgumentException
- if the dimensions of the two vectors are not equal
-
plus
public Vector plus(Vector that)
Returns the sum of this vector and the specified vector.- Parameters:
that
- the vector to add to this vector- Returns:
- the vector whose value is
(this + that)
- Throws:
IllegalArgumentException
- if the dimensions of the two vectors are not equal
-
minus
public Vector minus(Vector that)
Returns the difference between this vector and the specified vector.- Parameters:
that
- the vector to subtract from this vector- Returns:
- the vector whose value is
(this - that)
- Throws:
IllegalArgumentException
- if the dimensions of the two vectors are not equal
-
cartesian
public double cartesian(int i)
Returns the ith cartesian coordinate.- Parameters:
i
- the coordinate index- Returns:
- the ith cartesian coordinate
-
scale
public Vector scale(double alpha)
Returns the scalar-vector product of this vector and the specified scalar- Parameters:
alpha
- the scalar- Returns:
- the vector whose value is
(alpha * this)
-
direction
public Vector direction()
Returns a unit vector in the direction of this vector.- Returns:
- a unit vector in the direction of this vector
- Throws:
ArithmeticException
- if this vector is the zero vector
-
toString
public String toString()
Returns a string representation of this vector.
-
main
public static void main(String[] args)
Unit tests theVector
data type.- Parameters:
args
- the command-line arguments
-
-