krl_create_distance_handle
接口定义
int krl_create_distance_handle(KRLDistanceHandle** kdh, size_t accu_level, size_t blocksize, size_t codes_num, size_t dim, size_t num_base, int metric_type, const uint8_t* codes, size_t codes_size);
接口用途
初始化构建一个KRLDistanceHandle实例,稠密距离计算时使用。
参数说明
参数名称 |
数据类型 |
描述 |
取值范围 |
|---|---|---|---|
kdh |
KRLDistanceHandle** |
需要被初始化构建的KRLDistanceHandle指针。 |
限制为非空指针,指向一个空指针。 |
accu_level |
size_t |
计算时的量化等级。 |
[1,3],取值表示不同的量化等级:
|
blocksize |
size_t |
数据分块大小。 |
16或32或64。选择最大能除尽底库向量数量的分块。 |
codes_num |
size_t |
每个查询向量计算的底库向量数量。 |
[1,2^30-1] |
dim |
size_t |
向量维度。 |
[1,65535] |
num_base |
size_t |
单次处理的向量个数。 |
[1,65535] |
metric_type |
int |
距离度量类型。 |
[0,1],取值表示不同的距离度量类型:
|
codes |
const uint8_t* |
底库向量(float)。 |
限制长度为codes_size,其中“codes_size”为底库向量codes的长度。 |
codes_size |
size_t |
底库向量codes的长度。 |
num_base * codes_num * dim * 4,其中“num_base”为单次处理的查询向量个数,“codes_num”为每个查询向量计算的底库向量数量,“dim”为向量维度。 |
返回值
数据类型 |
说明 |
|---|---|
int |
正常运行时返回0,异常退出返回对应错误码。
|