Check cluster centers size in copy constructor of inlined kmeans (#19356)
Co-authored-by: Costa Tsaousis <costa@netdata.cloud>
vkalintiris committed
Jan 14, 2025 at 16:18 UTC
592ee9817e391a6c1ed4199250cee659d3958d9c
1 file changed
+6
-8
src/ml/ml_kmeans.h
+6
-8
@@ -37,12 +37,11 @@ struct ml_kmeans_inlined_t {
37
38
explicit ml_kmeans_inlined_t(const ml_kmeans_t &km)
39
{
40
- if (km.cluster_centers.size() != 2) {
41
- throw std::runtime_error("ml_kmeans_t must have exactly 2 cluster centers");
40
+ if (km.cluster_centers.size() == 2) {
41
+ cluster_centers[0] = km.cluster_centers[0];
42
+ cluster_centers[1] = km.cluster_centers[1];
43
}
44
44
- cluster_centers[0] = km.cluster_centers[0];
45
- cluster_centers[1] = km.cluster_centers[1];
45
min_dist = km.min_dist;
46
max_dist = km.max_dist;
47
after = km.after;
@@ -51,11 +50,10 @@ struct ml_kmeans_inlined_t {
50
51
ml_kmeans_inlined_t &operator=(const ml_kmeans_t &km)
52
{
54
- if (km.cluster_centers.size() != 2) {
55
- throw std::runtime_error("ml_kmeans_t must have exactly 2 cluster centers");
53
+ if (km.cluster_centers.size() == 2) {
54
+ cluster_centers[0] = km.cluster_centers[0];
55
+ cluster_centers[1] = km.cluster_centers[1];
56
}
57
- cluster_centers[0] = km.cluster_centers[0];
58
- cluster_centers[1] = km.cluster_centers[1];
57
min_dist = km.min_dist;
58
max_dist = km.max_dist;
59
after = km.after;