mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-11 07:06:57 +08:00
Improved code [skip ci]
This commit is contained in:
@@ -443,6 +443,8 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp
|
|||||||
newcdist = palloc(newcdistSize);
|
newcdist = palloc(newcdistSize);
|
||||||
|
|
||||||
aggCenters = VectorArrayInit(numCenters, dimensions, VECTOR_SIZE(dimensions));
|
aggCenters = VectorArrayInit(numCenters, dimensions, VECTOR_SIZE(dimensions));
|
||||||
|
aggCenters->length = numCenters;
|
||||||
|
|
||||||
for (int j = 0; j < numCenters; j++)
|
for (int j = 0; j < numCenters; j++)
|
||||||
{
|
{
|
||||||
Vector *vec = (Vector *) VectorArrayGet(aggCenters, j);
|
Vector *vec = (Vector *) VectorArrayGet(aggCenters, j);
|
||||||
@@ -459,6 +461,7 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp
|
|||||||
else if (type == IVFFLAT_TYPE_HALFVEC)
|
else if (type == IVFFLAT_TYPE_HALFVEC)
|
||||||
{
|
{
|
||||||
newCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize);
|
newCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize);
|
||||||
|
newCenters->length = numCenters;
|
||||||
|
|
||||||
for (int j = 0; j < numCenters; j++)
|
for (int j = 0; j < numCenters; j++)
|
||||||
{
|
{
|
||||||
@@ -471,6 +474,7 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp
|
|||||||
else if (type == IVFFLAT_TYPE_BIT)
|
else if (type == IVFFLAT_TYPE_BIT)
|
||||||
{
|
{
|
||||||
newCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize);
|
newCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize);
|
||||||
|
newCenters->length = numCenters;
|
||||||
|
|
||||||
for (int j = 0; j < numCenters; j++)
|
for (int j = 0; j < numCenters; j++)
|
||||||
{
|
{
|
||||||
@@ -483,9 +487,6 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp
|
|||||||
else
|
else
|
||||||
elog(ERROR, "Unsupported type");
|
elog(ERROR, "Unsupported type");
|
||||||
|
|
||||||
aggCenters->length = aggCenters->maxlen;
|
|
||||||
newCenters->length = newCenters->maxlen;
|
|
||||||
|
|
||||||
#ifdef IVFFLAT_MEMORY
|
#ifdef IVFFLAT_MEMORY
|
||||||
ShowMemoryUsage(oldCtx, totalSize);
|
ShowMemoryUsage(oldCtx, totalSize);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user