using System; namespace ZeroLevel.HNSW { public sealed class NSWOptions { /// /// Max node connections on Layer /// public readonly int M; /// /// Max search buffer /// public readonly int EF; /// /// Max search buffer for inserting /// public readonly int EFConstruction; public static NSWOptions Create(int v1, int v2, int v3, int v4, Func l2Euclidean, object selectionHeuristic) { throw new NotImplementedException(); } /// /// Distance function beetween vectors /// public readonly Func Distance; public readonly int LayersCount; private NSWOptions(int layersCount, int m, int ef, int ef_construction, Func distance) { LayersCount = layersCount; M = m; EF = ef; EFConstruction = ef_construction; Distance = distance; } public static NSWOptions Create(int layersCount, int M, int EF, int EF_construction, Func distance) => new NSWOptions(layersCount, M, EF, EF_construction, distance); } }