mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-12 07:36:55 +08:00
Improved k-means code [skip ci]
This commit is contained in:
@@ -268,18 +268,16 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp
|
|||||||
aggCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize);
|
aggCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize);
|
||||||
for (int64 j = 0; j < numCenters; j++)
|
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));
|
SET_VARSIZE(vec, VECTOR_SIZE(dimensions));
|
||||||
vec->dim = dimensions;
|
vec->dim = dimensions;
|
||||||
}
|
|
||||||
else
|
|
||||||
elog(ERROR, "Unsupported type");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
newCenters = aggCenters;
|
if (type == IVFFLAT_TYPE_VECTOR)
|
||||||
|
newCenters = aggCenters;
|
||||||
|
else
|
||||||
|
elog(ERROR, "Unsupported type");
|
||||||
|
|
||||||
#ifdef IVFFLAT_MEMORY
|
#ifdef IVFFLAT_MEMORY
|
||||||
ShowMemoryUsage(totalSize);
|
ShowMemoryUsage(totalSize);
|
||||||
|
|||||||
Reference in New Issue
Block a user