鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

krl_table_lookup_8b_f32

接口定义

int krl_table_lookup_8b_f32(size_t nsq, size_t ncode, const uint8_t* codes, const float* sim_table, float* distance, float dis0, size_t codes_size, size_t sim_table_size, size_t dis_size);

接口用途

使用8bit索引在float类型表项中查询距离并累和,将累和结果加上dis0后存入distance。

参数说明

参数名称

数据类型

描述

取值范围

nsq

size_t

子空间数量。

[1,65535]

ncode

size_t

倒排列表中的向量数。

[1,2^30-1]

codes

const uint8_t*

码本,底库向量对应的索引。

限制长度为codes_size,其中“codes_size”为码本数组的长度。

sim_table

const float*

码表,存储每维度查询向量与所有质心的距离。

限制长度为sim_table_size,其中“sim_table_size”为码表数组的长度。

dis

float*

存储计算所得的距离结果。

限制长度为dis_size,其中“dis_size”为存储距离结果数组的长度。需预先分配内存。

dis0

float

初始距离。

浮点数。

codes_size

size_t

码本数组的长度。

nsq*ncode,其中“nsq”为子空间数量,“ncode”为倒排列表中的向量数。

sim_table_size

size_t

码表数组的长度。

nsq*256,其中“nsq”为子空间数量。

dis_size

size_t

存储距离结果数组的长度。

ncode,其中“ncode”为倒排列表中的向量数。

返回值

数据类型

说明

int

正常运行时返回0,异常退出返回对应错误码。

  • -1:非法指针。
  • -2:内存分配失败。
  • -3:非法入参。
  • -4:双重释放。
  • -5:不安全内存操作。
  • -6:IO失败。