@cryptotaxi247 / netdata-1 / commits / 592ee9817

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;