Distance#
Distance types#
#include <cuvs/distance/distance.h>
-
enum cuvsDistanceType#
enum to tell how to compute distance
Values:
-
enumerator L2Expanded#
evaluate as dist_ij = sum(x_ik^2) + sum(y_ij)^2 - 2*sum(x_ik * y_jk)
-
enumerator L2SqrtExpanded#
same as above, but inside the epilogue, perform square root operation
-
enumerator CosineExpanded#
cosine distance
-
enumerator L1#
L1 distance
-
enumerator L2Unexpanded#
evaluate as dist_ij += (x_ik - y-jk)^2
-
enumerator L2SqrtUnexpanded#
same as above, but inside the epilogue, perform square root operation
-
enumerator InnerProduct#
basic inner product
-
enumerator Linf#
Chebyshev (Linf) distance
-
enumerator Canberra#
Canberra distance
-
enumerator LpUnexpanded#
Generalized Minkowski distance
-
enumerator CorrelationExpanded#
Correlation distance
-
enumerator JaccardExpanded#
Jaccard distance
-
enumerator HellingerExpanded#
Hellinger distance
-
enumerator Haversine#
Haversine distance
-
enumerator BrayCurtis#
Bray-Curtis distance
-
enumerator JensenShannon#
Jensen-Shannon distance
-
enumerator HammingUnexpanded#
Hamming distance
-
enumerator KLDivergence#
KLDivergence
-
enumerator RusselRaoExpanded#
RusselRao
-
enumerator DiceExpanded#
Dice-Sorensen distance
-
enumerator BitwiseHamming#
Bitstring Hamming distance
-
enumerator Precomputed#
Precomputed (special value)
-
enumerator L2Expanded#
Pairwise distance#
#include <cuvs/distance/pairwise_distance.h>
- cuvsError_t cuvsPairwiseDistance(
- cuvsResources_t res,
- DLManagedTensor *x,
- DLManagedTensor *y,
- DLManagedTensor *dist,
- cuvsDistanceType metric,
- float metric_arg
Compute pairwise distances for two matrices.
Usage example:
#include <cuvs/core/c_api.h> #include <cuvs/distance/pairwise_distance.h> // Create cuvsResources_t cuvsResources_t res; cuvsError_t res_create_status = cuvsResourcesCreate(&res); // Assume a populated `DLManagedTensor` type here DLManagedTensor x; DLManagedTensor y; DLManagedTensor dist; cuvsPairwiseDistance(res, &x, &y, &dist, L2SqrtUnexpanded, 2.0);
- Parameters:
res – [in] cuvs resources object for managing expensive resources
x – [in] first set of points (size n*k)
y – [in] second set of points (size m*k)
dist – [out] output distance matrix (size n*m)
metric – [in] distance to evaluate
metric_arg – [in] metric argument (used for Minkowski distance)