Modules

Api for external language.
This file provides a trait to be used as an opaque pointer for C or Julia calls used in file libext.rs

Some standard distances as L1, L2, Cosine, Jaccard, Hamming and a structure to enable the user to implement its own distances. For the heavily used case (f32) we provide simd avx2 implementation.

This module provides conversion of a Point structure to a FlatPoint containing just the Id of a point and those of its neighbours. The whole Hnsw structure is then flattened into a Hashtable associating the data ID of a point to its corresponding FlatPoint.
It can be used, for example, when reloading only the graph part of the data to have knowledge of relative proximity of points as described just by their DataId

A rust implementation of Approximate NN search from:
Efficient and robust approximate nearest neighbour search using Hierarchical Navigable small World graphs. Yu. A. Malkov, D.A Yashunin 2016, 2018

This file provides io dump/ reload of computed graph.

This file contains lib to call hnsw from julia (or any language providing a C api) The AnnT trait is implemented with macros for u32, u16, u8, f32, f64 and i32.
The macro declare_myapi_type! produces struct HnswApif32 and so on.

Macros