12 #include "../metricknn_impl.h"
14 MknnHeap *mknn_heap_newMaxHeap(int64_t heap_size);
15 MknnHeap *mknn_heap_newMinHeap(int64_t heap_size);
16 void mknn_heap_storeBestDistances(
double distance, int64_t object_id,
17 MknnHeap *heap,
double *current_threshold_ptr);
18 int64_t mknn_heap_getSize(
MknnHeap *heap);
19 void mknn_heap_sortElements(
MknnHeap *heap);
20 double mknn_heap_getDistanceAtPosition(
MknnHeap *heap, int64_t position);
21 int64_t mknn_heap_getObjectIdAtPosition(
MknnHeap *heap, int64_t position);
22 void mknn_heap_reset(
MknnHeap *heap);
23 void mknn_heap_release(
MknnHeap *heap);
25 MknnHeap **mknn_heap_newMultiMaxHeap(int64_t heap_size, int64_t num_heaps);
26 MknnHeap **mknn_heap_newMultiMinHeap(int64_t heap_size, int64_t num_heaps);
27 void mknn_heap_releaseMulti(
MknnHeap **heaps, int64_t num_heaps);