Skip to content
Snippets Groups Projects
Commit 17c6d2c7 authored by Jason R Wilson's avatar Jason R Wilson
Browse files

files for PSA02

parent 357ad0f4
Branches
No related merge requests found
......@@ -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);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment