// Shared solver kernels void run_copy_u(Chunk* chunk, Settings* settings) { START_PROFILING(settings->kernel_profile); copy_u( chunk->x, chunk->y, settings->halo_depth, chunk->u0, chunk->u); STOP_PROFILING(settings->kernel_profile, __func__); }
void main() { int i,j,k,cl,*count; int error=1,error1 =0; double **U,**Z,m; FILE *fp; int *pcls,*ncls; char filename[50],filename1[50]; long *member,member_index=0; printf("\nEnter the number of clusters\n"); scanf("%d",&c); printf("\nEnter the number of features\n"); scanf("%d",&f); member=(long*)malloc(c*sizeof(long*)); Read_data(); z = (double**)calloc(c,sizeof(double*)); U = (double**)calloc(c,sizeof(double*)); Z = (double**)calloc(c,sizeof(double*)); count = (int*)calloc(c,sizeof(int)); for(i=0; i <c; i++) { z[i] = (double*)calloc(f , sizeof(double)); U[i] = (double*)calloc(n , sizeof(double)); Z[i] = (double*)calloc(f , sizeof(double)); if((z[i] == NULL) || (U[i] == NULL)) { printf("error\n"); exit(1); } } sum=(double*)malloc(f*sizeof(double)); initial_mv_matrix(); while(error) { proto_type_update(); copy_u(U); mv_matrix_update(); error = Error_matrices(U); } /*while(error1) { proto_type_update(); copy_z(Z); mv_matrix_update(); error1 = Error_proto(Z); } */ printf("\nEnter the file name to store the centers\n"); scanf("%s",filename1); fp = fopen(filename1,"w"); for(i=0;i<c;i++) { for(j=0;j<f-1;j++) fprintf(fp,"%16.15lf ",z[i][j]); fprintf(fp,"%16.15lf",z[i][j]); fprintf(fp,"\n"); } fclose(fp); printf("\nEnter the file name\n"); scanf("%s",filename); fp = fopen(filename,"w"); for(j=0; j<n; j++) { m=0.0; for(i=0; i<c; i++) { if(u[i][j] > m) { m=u[i][j]; cl=i; } } count[cl]++; fprintf(fp,"\n%d %d ",j,cl); } fclose(fp); for(i=0; i<c; i++) printf("%d ",count[i]); printf("\n"); /*pcls=(int *)calloc(c,sizeof(int)); ncls=(int *)calloc(c,sizeof(int));*/ fp = fopen(filename,"r"); for(i=0;i<n;i++) { fscanf(fp,"%d%d",&j,&cl); /*if(j%2==0) pcls[cl]=pcls[cl]+1; else ncls[cl]=ncls[cl]+1;*/ member[cl]++; } for(i=0;i<c;i++) printf("\ncls[%d] = %d \n",i,member[i]); free(pcls); free(ncls); return; }