Rate This Document
Findability
Accuracy
Completeness
Readability

krl_create_distance_handle

Interface Definition

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);

Function

Initializes and constructs a KRLDistanceHandle instance for dense distance computation.

Parameters

Parameter

Data Type

Description

Value Range

kdh

KRLDistanceHandle**

Pointer to the KRLDistanceHandle instance to be initialized.

It cannot be null and should point to a null pointer.

accu_level

size_t

Quantization level during computation.

[1, 3]

  • 1: int8
  • 2: fp16
  • 3: fp32

blocksize

size_t

Data block size.

16, 32, or 64. Select the largest value that evenly divides the total number of base vectors.

codes_num

size_t

Number of base vectors computed for each query vector.

[1, 2^30 – 1]

dim

size_t

Vector dimension.

[1, 65535]

num_base

size_t

Number of vectors processed in a batch.

[1, 65535]

metric_type

int

Distance measurement type.

[0, 1]

  • 0: inner product distance
  • 1: Euclidean distance

codes

const uint8_t*

Base vectors (float).

The size is specified by codes_size.

codes_size

size_t

Length of base vectors.

num_base x codes_num x dim x 4

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