Package org.apache.lucene.util
Class VectorUtil
- java.lang.Object
-
- org.apache.lucene.util.VectorUtil
-
public final class VectorUtil extends java.lang.ObjectUtilities for computations with numeric arrays
-
-
Constructor Summary
Constructors Modifier Constructor Description privateVectorUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidadd(float[] u, float[] v)Adds the second argument to the firststatic floatcosine(float[] v1, float[] v2)Returns the cosine similarity between the two vectors.static floatdotProduct(float[] a, float[] b)Returns the vector dot product of the two vectors.static float[]l2normalize(float[] v)Modifies the argument to be unit length, dividing by its l2-norm.static float[]l2normalize(float[] v, boolean throwOnZero)Modifies the argument to be unit length, dividing by its l2-norm.static floatsquareDistance(float[] v1, float[] v2)Returns the sum of squared differences of the two vectors.private static floatsquareDistanceUnrolled8(float[] v1, float[] v2, int index)
-
-
-
Method Detail
-
dotProduct
public static float dotProduct(float[] a, float[] b)Returns the vector dot product of the two vectors.- Throws:
java.lang.IllegalArgumentException- if the vectors' dimensions differ.
-
cosine
public static float cosine(float[] v1, float[] v2)Returns the cosine similarity between the two vectors.- Throws:
java.lang.IllegalArgumentException- if the vectors' dimensions differ.
-
squareDistance
public static float squareDistance(float[] v1, float[] v2)Returns the sum of squared differences of the two vectors.- Throws:
java.lang.IllegalArgumentException- if the vectors' dimensions differ.
-
squareDistanceUnrolled8
private static float squareDistanceUnrolled8(float[] v1, float[] v2, int index)
-
l2normalize
public static float[] l2normalize(float[] v)
Modifies the argument to be unit length, dividing by its l2-norm. IllegalArgumentException is thrown for zero vectors.- Returns:
- the input array after normalization
-
l2normalize
public static float[] l2normalize(float[] v, boolean throwOnZero)Modifies the argument to be unit length, dividing by its l2-norm.- Parameters:
v- the vector to normalizethrowOnZero- whether to throw an exception whenvhas all zeros- Returns:
- the input array after normalization
- Throws:
java.lang.IllegalArgumentException- when the vector is all zero and throwOnZero is true
-
add
public static void add(float[] u, float[] v)Adds the second argument to the first- Parameters:
u- the destinationv- the vector to add to the destination
-
-