Distance functions¶
The following functions are used to calculate distances between two points.
L1Norm¶
Calculates the sum of absolute values of a vector.
Syntax¶
L1Norm(vector)
Alias: normL1
.
Arguments¶
vector
: Tuple or Array.
Returned value¶
- L1-norm or taxicab geometry distance. UInt, Float or Decimal.
Examples¶
Query:
SELECT L1Norm((1, 2))
Result:
┌─L1Norm((1, 2))─┐ │ 3 │ └────────────────┘
L2Norm¶
Calculates the square root of the sum of the squares of the vector values.
Syntax¶
L2Norm(vector)
Alias: normL2
.
Arguments¶
vector
: Tuple or Array.
Returned value¶
- L2-norm or Euclidean distance. Float.
Example¶
Query:
SELECT L2Norm((1, 2))
Result:
┌───L2Norm((1, 2))─┐ │ 2.23606797749979 │ └──────────────────┘
L2SquaredNorm¶
Calculates the square root of the sum of the squares of the vector values (the L2Norm) squared.
Syntax¶
L2SquaredNorm(vector)
Alias: normL2Squared
.
*Arguments¶
vector
: Tuple or Array.
Returned value¶
- L2-norm squared. Float.
Example¶
Query:
SELECT L2SquaredNorm((1, 2))
Result:
┌─L2SquaredNorm((1, 2))─┐ │ 5 │ └───────────────────────┘
LinfNorm¶
Calculates the maximum of absolute values of a vector.
Syntax¶
LinfNorm(vector)
Alias: normLinf
.
Arguments¶
vector
: Tuple or Array.
Returned value¶
- Linf-norm or the maximum absolute value. Float.
Example¶
Query:
SELECT LinfNorm((1, -2))
Result:
┌─LinfNorm((1, -2))─┐ │ 2 │ └───────────────────┘
LpNorm¶
Calculates the root of p
-th power of the sum of the absolute values of a vector in the power of p
.
Syntax¶
LpNorm(vector, p)
Alias: normLp
.
Arguments¶
vector
: Tuple or Array.p
: The power. Possible values: real number in1; inf)
. [UInt or Float.
Returned value¶
- Lp-norm#p-norm). Float.
Example¶
Query:
SELECT LpNorm((1, -2), 2)
Result:
┌─LpNorm((1, -2), 2)─┐ │ 2.23606797749979 │ └────────────────────┘
L1Distance¶
Calculates the distance between two points (the values of the vectors are the coordinates) in L1
space (1-norm (taxicab geometry distance)).
Syntax¶
L1Distance(vector1, vector2)
Alias: distanceL1
.
Arguments¶
vector1
: First vector. Tuple or Array.vector2
: Second vector. Tuple or Array.
Returned value¶
- 1-norm distance. Float.
Example¶
Query:
SELECT L1Distance((1, 2), (2, 3))
Result:
┌─L1Distance((1, 2), (2, 3))─┐ │ 2 │ └────────────────────────────┘
L2Distance¶
Calculates the distance between two points (the values of the vectors are the coordinates) in Euclidean space (Euclidean distance).
Syntax¶
L2Distance(vector1, vector2)
Alias: distanceL2
.
Arguments¶
vector1
: First vector. Tuple or Array.vector2
: Second vector. Tuple or Array.
Returned value¶
- 2-norm distance. Float.
Example¶
Query:
SELECT L2Distance((1, 2), (2, 3))
Result:
┌─L2Distance((1, 2), (2, 3))─┐ │ 1.4142135623730951 │ └────────────────────────────┘
L2SquaredDistance¶
Calculates the sum of the squares of the difference between the corresponding elements of two vectors.
Syntax¶
L2SquaredDistance(vector1, vector2)
Alias: distanceL2Squared
.
Arguments¶
vector1
: First vector. Tuple or Array.vector2
: Second vector. Tuple or Array.
Returned value¶
- Sum of the squares of the difference between the corresponding elements of two vectors. Float.
Example¶
Query:
SELECT L2SquaredDistance([1, 2, 3], [0, 0, 0])
Result:
┌─L2SquaredDistance([1, 2, 3], [0, 0, 0])─┐ │ 14 │ └─────────────────────────────────────────┘
LinfDistance¶
Calculates the distance between two points (the values of the vectors are the coordinates) in L_{inf}
space (maximum norm#Maximum_norm_(special_case_of:_infinity_norm,_uniform_norm,_or_supremum_norm))).
Syntax¶
LinfDistance(vector1, vector2)
Alias: distanceLinf
.
Arguments¶
vector1
: First vector. Tuple or Array.vector1
: Second vector. Tuple or Array.
Returned value¶
- Infinity-norm distance. Float.
Example¶
Query:
SELECT LinfDistance((1, 2), (2, 3))
Result:
┌─LinfDistance((1, 2), (2, 3))─┐ │ 1 │ └──────────────────────────────┘
LpDistance¶
Calculates the distance between two points (the values of the vectors are the coordinates) in Lp
space (p-norm distance#p-norm)).
Syntax¶
LpDistance(vector1, vector2, p)
Alias: distanceLp
.
Arguments¶
vector1
: First vector. Tuple or Array.vector2
: Second vector. Tuple or Array.p
: The power. Possible values: real number from1; inf)
. [UInt or Float.
Returned value¶
- p-norm distance. Float.
Example¶
Query:
SELECT LpDistance((1, 2), (2, 3), 3)
Result:
┌─LpDistance((1, 2), (2, 3), 3)─┐ │ 1.2599210498948732 │ └───────────────────────────────┘
L1Normalize¶
Calculates the unit vector of a given vector (the values of the tuple are the coordinates) in L1
space (taxicab geometry).
Syntax¶
L1Normalize(tuple)
Alias: normalizeL1
.
Arguments¶
tuple
: Tuple.
Returned value¶
- Unit vector. Tuple of Float.
Example¶
Query:
SELECT L1Normalize((1, 2))
Result:
┌─L1Normalize((1, 2))─────────────────────┐ │ (0.3333333333333333,0.6666666666666666) │ └─────────────────────────────────────────┘
L2Normalize¶
Calculates the unit vector of a given vector (the values of the tuple are the coordinates) in Euclidean space (using Euclidean distance).
Syntax¶
L2Normalize(tuple)
Alias: normalizeL1
.
Arguments¶
tuple
: Tuple.
Returned value¶
- Unit vector. Tuple of Float.
Example¶
Query:
SELECT L2Normalize((3, 4))
Result:
┌─L2Normalize((3, 4))─┐ │ (0.6,0.8) │ └─────────────────────┘
LinfNormalize¶
Calculates the unit vector of a given vector (the values of the tuple are the coordinates) in L_{inf}
space (using maximum norm#Maximum_norm_(special_case_of:_infinity_norm,_uniform_norm,_or_supremum_norm))).
Syntax¶
LinfNormalize(tuple)
Alias: normalizeLinf
.
Arguments¶
tuple
: Tuple.
Returned value¶
- Unit vector. Tuple of Float.
Example¶
Query:
SELECT LinfNormalize((3, 4))
Result:
┌─LinfNormalize((3, 4))─┐ │ (0.75,1) │ └───────────────────────┘
LpNormalize¶
Calculates the unit vector of a given vector (the values of the tuple are the coordinates) in Lp
space (using p-norm#p-norm)).
Syntax¶
LpNormalize(tuple, p)
Alias: normalizeLp
.
Arguments¶
tuple
: Tuple.p
: The power. Possible values: any number from 1;inf). [UInt or Float.
Returned value¶
- Unit vector. Tuple of Float.
Example¶
Query:
SELECT LpNormalize((3, 4),5)
Result:
┌─LpNormalize((3, 4), 5)──────────────────┐ │ (0.7187302630182624,0.9583070173576831) │ └─────────────────────────────────────────┘
cosineDistance¶
Calculates the cosine distance between two vectors (the values of the tuples are the coordinates). The smaller the returned value is, the more similar are the vectors.
Syntax¶
cosineDistance(vector1, vector2)
Arguments¶
vector1
: First tuple. Tuple or Array.vector2
: Second tuple. Tuple or Array.
Returned value¶
- Cosine of the angle between two vectors subtracted from one. Float.
Examples¶
Query:
SELECT cosineDistance((1, 2), (2, 3))
Result:
┌─cosineDistance((1, 2), (2, 3))─┐ │ 0.007722123286332261 │ └────────────────────────────────┘