## com.aliasi.matrix Class CosineDistance

```java.lang.Object
com.aliasi.matrix.CosineDistance
```
All Implemented Interfaces:
Proximity<Vector>, Serializable

`public class CosineDistanceextends Objectimplements Proximity<Vector>, Serializable`

The `CosineDistance` class implements proximity as vector cosine. Distance is defined as one minus the proximity.

The vector cosine operation is defined in the vector interface, `Vector.cosine(Vector)`

Since:
LingPipe3.1
Version:
3.1.3
Author:
Bob Carpenter
Serialized Form

Field Summary
`static CosineDistance` `DISTANCE`
A constant for the cosine distance.

Constructor Summary
`CosineDistance()`
Construct a cosine proximity.

Method Summary
` double` ```distance(Vector v1, Vector v2)```
Returns one minus the proximity of the vectors.
` double` ```proximity(Vector v1, Vector v2)```
Returns the cosine between the specified vectors.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DISTANCE

`public static final CosineDistance DISTANCE`
A constant for the cosine distance. Because the distance function is thread safe, this single instance may be used wherever the cosine distance is needed.

Constructor Detail

### CosineDistance

`public CosineDistance()`
Construct a cosine proximity.

Method Detail

### distance

```public double distance(Vector v1,
Vector v2)```
Returns one minus the proximity of the vectors.
`    distance(v1,v2) = 1.0 - proximity(v1,v2)`
With this definition, distances run between 0 and 2, with identical vectors being at distance 0, orthogonal vectors at distance 1 and oppositive vectors at distance 2.

Parameters:
`v1` - First vector.
`v2` - Second vector.
Returns:
The negative cosine between the first and second vector.

### proximity

```public double proximity(Vector v1,
Vector v2)```
Returns the cosine between the specified vectors. The proximity will be 1 if the vectors are identical in direction, 0 if they are orthogonal, and -1 if they are in opposite directions.

Specified by:
`proximity` in interface `Proximity<Vector>`
Parameters:
`v1` - First vector.
`v2` - Second vector.
Returns:
The cosine between the first and second vector.