From 7fddd296eed8af1b650416033e65950a0146597f Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 11 Apr 2024 17:16:54 -0700 Subject: [PATCH] Improved k-means code [skip ci] --- src/ivfkmeans.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/ivfkmeans.c b/src/ivfkmeans.c index 0fcf933..f2d42ce 100644 --- a/src/ivfkmeans.c +++ b/src/ivfkmeans.c @@ -268,18 +268,16 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp aggCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize); for (int64 j = 0; j < numCenters; j++) { - if (type == IVFFLAT_TYPE_VECTOR) - { - Vector *vec = (Vector *) VectorArrayGet(aggCenters, j); + Vector *vec = (Vector *) VectorArrayGet(aggCenters, j); - SET_VARSIZE(vec, VECTOR_SIZE(dimensions)); - vec->dim = dimensions; - } - else - elog(ERROR, "Unsupported type"); + SET_VARSIZE(vec, VECTOR_SIZE(dimensions)); + vec->dim = dimensions; } - newCenters = aggCenters; + if (type == IVFFLAT_TYPE_VECTOR) + newCenters = aggCenters; + else + elog(ERROR, "Unsupported type"); #ifdef IVFFLAT_MEMORY ShowMemoryUsage(totalSize);