Package org.apache.commons.math3.geometry

# Interface Vector<S extends Space>

Type Parameters:
  `S` - Type of the space.

All Superinterfaces:
  `Point<S>`, `Serializable`

All Known Implementing Classes:
  `Vector1D`, `Vector2D`, `Vector3D`

public interface Vector<S extends Space> extends Point<S>
This interface represents a generic vector in a vectorial space or a point in an affine space.

Since:
  3.0
See Also:
  - `Space`
  - `Point`

## Method Summary

Modifier and Type
Method
Description
`Vector<S>`
`add(double factor, Vector<S> v)`
Add a scaled vector to the instance.
`Vector<S>`
`add(Vector<S> v)`
Add a vector to the instance.
`double`
`distance(Vector<S> v)`
Compute the distance between the instance and another vector according to the L2 norm.
`double`
`distance1(Vector<S> v)`
Compute the distance between the instance and another vector according to the L1 norm.
`double`
`distanceInf(Vector<S> v)`
Compute the distance between the instance and another vector according to the L∞ norm.
`double`
`distanceSq(Vector<S> v)`
Compute the square of the distance between the instance and another vector.
`double`
`dotProduct(Vector<S> v)`
Compute the dot-product of the instance and another vector.
`double`
`getNorm()`
Get the L2 norm for the vector.
`double`
`getNorm1()`
Get the L1 norm for the vector.
`double`
`getNormInf()`
Get the L∞ norm for the vector.
`double`
`getNormSq()`
Get the square of the norm for the vector.
`Vector<S>`
`getZero()`
Get the null vector of the vectorial space or origin point of the affine space.
`boolean`
`isInfinite()`
Returns true if any coordinate of this vector is infinite and none are NaN; false otherwise
`Vector<S>`
`negate()`
Get the opposite of the instance.
`Vector<S>`
`normalize()`
Get a normalized vector aligned with the instance.
`Vector<S>`
`scalarMultiply(double a)`
Multiply the instance by a scalar.
`Vector<S>`
`subtract(double factor, Vector<S> v)`
Subtract a scaled vector from the instance.
`Vector<S>`
`subtract(Vector<S> v)`
Subtract a vector from the instance.
`String`
`toString(NumberFormat format)`
Get a string representation of this vector.

### Methods inherited from interface org.apache.commons.math3.geometry.Point

`distance, getSpace, isNaN`

## Method Details

### getZero

Vector<S> getZero()
Get the null vector of the vectorial space or origin point of the affine space.

Returns:
  null vector of the vectorial space or origin point of the affine space

### getNorm1

double getNorm1()
Get the L1 norm for the vector.

Returns:
  L1 norm for the vector

### getNorm

double getNorm()
Get the L2 norm for the vector.

Returns:
  Euclidean norm for the vector

### getNormSq

double getNormSq()
Get the square of the norm for the vector.

Returns:
  square of the Euclidean norm for the vector

### getNormInf

double getNormInf()
Get the L∞ norm for the vector.

Returns:
  L∞ norm for the vector

### add

Vector<S> add(Vector<S> v)
Add a vector to the instance.

Parameters:
  `v` - vector to add
Returns:
  a new vector

### add

Vector<S> add(double factor, Vector<S> v)
Add a scaled vector to the instance.

Parameters:
  `factor` - scale factor to apply to v before adding it
  `v` - vector to add
Returns:
  a new vector

### subtract

Vector<S> subtract(Vector<S> v)
Subtract a vector from the instance.

Parameters:
  `v` - vector to subtract
Returns:
  a new vector

### subtract

Vector<S> subtract(double factor, Vector<S> v)
Subtract a scaled vector from the instance.

Parameters:
  `factor` - scale factor to apply to v before subtracting it
  `v` - vector to subtract
Returns:
  a new vector

### negate

Vector<S> negate()
Get the opposite of the instance.

Returns:
  a new vector which is opposite to the instance

### normalize

Vector<S> normalize() throws MathArithmeticException
Get a normalized vector aligned with the instance.

Returns:
  a new normalized vector
Throws:
  `MathArithmeticException` - if the norm is zero

### scalarMultiply

Vector<S> scalarMultiply(double a)
Multiply the instance by a scalar.

Parameters:
  `a` - scalar
Returns:
  a new vector

### isInfinite

boolean isInfinite()
Returns true if any coordinate of this vector is infinite and none are NaN; false otherwise

Returns:
  true if any coordinate of this vector is infinite and none are NaN; false otherwise

### distance1

double distance1(Vector<S> v)
Compute the distance between the instance and another vector according to the L1 norm.

Calling this method is equivalent to calling: `q.subtract(p).getNorm1()` except that no intermediate vector is built

Parameters:
  `v` - second vector
Returns:
  the distance between the instance and p according to the L1 norm

### distance

double distance(Vector<S> v)
Compute the distance between the instance and another vector according to the L2 norm.

Calling this method is equivalent to calling: `q.subtract(p).getNorm()` except that no intermediate vector is built

Parameters:
  `v` - second vector
Returns:
  the distance between the instance and p according to the L2 norm

### distanceInf

double distanceInf(Vector<S> v)
Compute the distance between the instance and another vector according to the L∞ norm.

Calling this method is equivalent to calling: `q.subtract(p).getNormInf()` except that no intermediate vector is built

Parameters:
  `v` - second vector
Returns:
  the distance between the instance and p according to the L∞ norm

### distanceSq

double distanceSq(Vector<S> v)
Compute the square of the distance between the instance and another vector.

Calling this method is equivalent to calling: `q.subtract(p).getNormSq()` except that no intermediate vector is built

Parameters:
  `v` - second vector
Returns:
  the square of the distance between the instance and p

### dotProduct

double dotProduct(Vector<S> v)
Compute the dot-product of the instance and another vector.

Parameters:
  `v` - second vector
Returns:
  the dot product this.v

### toString

String toString(NumberFormat format)
Get a string representation of this vector.

Parameters:
  `format` - the custom format for components
Returns:
  a string representation of this vector