ComputeDistanceByIdx
API定义 |
APP_ERROR ComputeDistanceByIdx(int n, const float16_t *queries, const int *num, const idx_t *indices, float *distances, unsigned int tableLen = 0, const float *table = nullptr); |
---|---|
功能描述 |
与ComputeDistance类似,区别在于ComputeDistance计算待查询向量与所有底库向量的距离,而该接口ComputeDistanceByIdx 只计算待查询向量与给定下标索引的底库向量之间的距离。如传递有效的映射表(tableLen > 0且*table为非空指针),则返回映射后的topk结果。 |
输入 |
int n:待查询特征向量的数目。 const float16_t *queries:待查询特征向量,有效长度为 n * dim,“dim”需与初始化时指定的dim保持一致。 const int *num: 给定每个query要比对的底库特征向量数目,长度为n。 const idx_t *indices:给定要比对的底库特征向量下标索引,每个query要比对的底库向量个数可以不同,应从前往后连续存储有效的向量索引,按照最大“num”补齐空间占用,“indices”长度为n * max(num)。 unsigned int tableLen:映射表长度,默认值为0,表示不做映射。目前支持配置映射表长为“10000”。 const float *table:映射表指针,指向“tableLen”长度的有效映射值存储空间,目前支持的冗余长度为“48”,即“*table”指向的空间长度为 10048 * sizeof(float) Byte。 |
输出 |
float *distances:查询向量与选定底库向量的距离,每个query从前往后连续记录有效距离,按照最大“num”补齐空间占用,空间长度为n * max(num)。 |
返回值 |
APP_ERROR:调用返回状态,具体请参见接口调用返回值参考。 |
约束说明 |
|