From 969e003ac7a34071900158a4fc897a6754751c15 Mon Sep 17 00:00:00 2001 From: Pierre Alexandre Tremblay Date: Fri, 23 Oct 2026 10:41:51 +0200 Subject: [PATCH] (s)kmean setMeans is now setting the number of clusters right --- include/flucoma/algorithms/public/KMeans.hpp | 2 ++ include/flucoma/clients/nrt/KMeansClient.hpp | 1 - include/flucoma/clients/nrt/SKMeansClient.hpp | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/flucoma/algorithms/public/KMeans.hpp b/include/flucoma/algorithms/public/KMeans.hpp index 171a1c1b..5b3e5053 100644 --- a/include/flucoma/algorithms/public/KMeans.hpp +++ b/include/flucoma/algorithms/public/KMeans.hpp @@ -224,6 +224,8 @@ class KMeans mMeans = _impl::asEigen(means); mDims = mMeans.cols(); mK = mMeans.rows(); + assert(mDims != 0); + assert(mK != 0); mEmpty = std::vector(asUnsigned(mK), false); mTrained = true; } diff --git a/include/flucoma/clients/nrt/KMeansClient.hpp b/include/flucoma/clients/nrt/KMeansClient.hpp index 1ffab321..97fa2e92 100644 --- a/include/flucoma/clients/nrt/KMeansClient.hpp +++ b/include/flucoma/clients/nrt/KMeansClient.hpp @@ -210,7 +210,6 @@ class KMeansClient : public FluidBaseClient, if (!srcPtr) return Error(NoDataSet); auto dataSet = srcPtr->getDataSet(); if (dataSet.size() == 0) return Error(EmptyDataSet); - if (dataSet.size() != get()) return Error(WrongNumInitial); mAlgorithm.setMeans(dataSet.getData()); return OK(); } diff --git a/include/flucoma/clients/nrt/SKMeansClient.hpp b/include/flucoma/clients/nrt/SKMeansClient.hpp index afd776d2..1d1f5e3d 100644 --- a/include/flucoma/clients/nrt/SKMeansClient.hpp +++ b/include/flucoma/clients/nrt/SKMeansClient.hpp @@ -210,7 +210,6 @@ auto [result, _] = train(dataSet, k, maxIter, get(), get()); if (!srcPtr) return Error(NoDataSet); auto dataSet = srcPtr->getDataSet(); if (dataSet.size() == 0) return Error(EmptyDataSet); - if (dataSet.size() != get()) return Error(WrongNumInitial); mAlgorithm.setMeans(dataSet.getData()); return OK(); }