Skip to content

Commit a4f17dc

Browse files
committed
cleanup: mhnsw - always scale>0
1 parent d0c6889 commit a4f17dc

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

sql/vector_mhnsw.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,12 @@ struct FVector
9595
float scale=0, *v= (float *)src;
9696
size_t vec_len= src_len / sizeof(float);
9797
for (size_t i= 0; i < vec_len; i++)
98-
if (std::abs(scale) < std::abs(get_float(v + i)))
99-
scale= get_float(v + i);
98+
scale= std::max(scale, std::abs(get_float(v + i)));
10099

101100
FVector *vec= align_ptr(mem);
102101
vec->scale= scale ? scale/32767 : 1;
103102
if (std::round(scale/vec->scale) > 32767)
104-
vec->scale= std::nextafter(vec->scale, scale > 0 ? FLT_MAX : -FLT_MAX);
103+
vec->scale= std::nextafter(vec->scale, FLT_MAX);
105104
for (size_t i= 0; i < vec_len; i++)
106105
vec->dims[i] = static_cast<int16_t>(std::round(get_float(v + i) / vec->scale));
107106
vec->postprocess(vec_len);

0 commit comments

Comments
 (0)