Rate This Document
Findability
Accuracy
Completeness
Readability

krl_reorder_2_vector

Interface Definition

int krl_reorder_2_vector(const KRLDistanceHandle* kdh, int64_t base_k, float* base_dis, int64_t* base_idx, const float* query_vector, int64_t k, float* dis, int64_t* idx, size_t query_vector_size);

Function

Computes high-accuracy distances between a single query vector and multiple non-contiguous base vectors, and returns the results sorted by distance.

Parameters

Parameter

Data Type

Description

Value Range

kdh

const KRLDistanceHandle*

Pointer to a KRLDistanceHandle instance.

It cannot be null, and is initialized using krl_create_reorder_handle.

base_k

int64_t

The number of candidate base vectors selected by a low-accuracy retrieval algorithm.

It falls within [k, codes_num], where codes_num is the number of base vectors.

base_dis

float*

Low-accuracy distance obtained using the low-accuracy retrieval algorithm.

The size is specified by base_k.

base_idx

int64_t*

ID of the candidate point obtained using the low-accuracy retrieval algorithm.

The size is specified by base_k. It falls within [-1, codes_num]. The IDs increase monotonically. If a placeholder value of -1 is used to indicate positions that should not be computed, those entries must be placed at the end of the vector array.

query_vector

const float*

Query vector data.

The size is specified by query_vector_size.

k

int64_t

The number of the nearest neighbors to return after computation.

It falls within [1, base_k].

dis

float*

Stores the computed distances between the query vector and its nearest neighbors.

The value is specified by k. The memory needs to be allocated in advance.

idx

int64_t*

Stores IDs of the nearest neighbors.

The value is specified by k. The memory needs to be allocated in advance.

query_vector_size

size_t

Size of the query vector array.

The value is specified by dim, the vector dimension.

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