diff --git a/PSA02/omp_kmeans.c b/PSA02/omp_kmeans.c index 37ab54d8b04fe1714b29f2da377f8525aaa670c2..0145d1bba0087bf5c38220dc42492218feb9c377 100644 --- a/PSA02/omp_kmeans.c +++ b/PSA02/omp_kmeans.c @@ -40,21 +40,21 @@ int find_cluster (double kmeans[], double point[], int k, int dim) { /* calculate the next kmeans */ void calc_kmeans_next (double data[], int num_points, int dim, double kmeans[], double kmeans_next[], int k) { - int num_points[k]; + int cluster_size[k]; for (int i=0;i<k;i++) { - num_points[i] = 0; + cluster_size[i] = 0; } vec_zero(kmeans_next,k*dim); for (int i=0;i<num_points;i++) { int cluster = find_cluster(kmeans,data+i*dim,k,dim); double* kmean = kmeans_next+cluster*dim; vec_add(kmean,data+i*dim,kmean,dim); - num_points[cluster] += 1; + cluster_size[cluster] += 1; } for (int i=0;i<k;i++) { double* kmean = kmeans_next+i*dim; - if (num_points[i] > 0) { - vec_scalar_mult(kmean,1.0/num_points[i],kmean,dim); + if (cluster_size[i] > 0) { + vec_scalar_mult(kmean,1.0/cluster_size[i],kmean,dim); } else { printf ("error : cluster has no points!\n"); exit(1);