krl_table_lookup_8b_f32
Interface Definition
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);
Function
Obtains distance values from the float-type LUT using 8-bit indexes, accumulates the distance values, adds dis0 to the result after accumulation, and stores the final result in distance.
Parameters
Parameter |
Data Type |
Description |
Value Range |
|---|---|---|---|
nsq |
size_t |
Number of subspaces. |
[1, 65535] |
ncode |
size_t |
Total number of base vectors. |
[1, 2^30 – 1] |
codes |
const uint8_t* |
Codebook, which stores indexes of base vectors. |
The size is specified by codes_size. |
sim_table |
const float* |
Similarity LUT, which stores the distances between query vectors for each dimension and all centroids. |
The size is specified by sim_table_size. |
dis |
float* |
Stores the distance computation result. |
The size is specified by dis_size. The memory needs to be allocated in advance. |
dis0 |
float |
Initial distance. |
Floating point number. |
codes_size |
size_t |
Length of the codebook array. |
nsq x ncode |
sim_table_size |
size_t |
Length of the similarity LUT array. |
nsq x 256 |
dis_size |
size_t |
Size of the distance result array. |
The size is specified by ncode. |
Return Values
Data Type |
Description |
|---|---|
int |
0 is returned on successful execution. In case of failure, an error code is returned to indicate the specific issue: |