mirror of
https://github.com/pgvector/pgvector.git
synced 2026-10-23 10:48:54 +03:00
Fixed zero handling for HNSW level selection - resolves #1023
Co-authored-by: cuishuang <imcusg@gmail.com>
This commit is contained in:
@@ -246,7 +246,8 @@ HnswInitElement(char *base, ItemPointer heaptid, int m, double ml, int maxLevel,
|
||||
{
|
||||
HnswElement element = HnswAlloc(allocator, sizeof(HnswElementData));
|
||||
|
||||
int level = (int) (-log(RandomDouble()) * ml);
|
||||
double uniform = RandomDouble();
|
||||
int level = uniform == 0.0 ? maxLevel : (int) (-log(uniform) * ml);
|
||||
|
||||
/* Cap level */
|
||||
if (level > maxLevel)
|
||||
|
||||
Reference in New Issue
Block a user