Rate This Document
Findability
Accuracy
Completeness
Readability

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

Number of vectors in the inverted list.

[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 results.

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

Specifies the 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:

  • -1: invalid pointer
  • -2: memory allocation failure
  • -3: invalid input parameter
  • -4: double free
  • -5: insecure memory operation
  • -6: I/O failure