Distance functions¶
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 │ └────────────────────────────────┘