void update_min_max(char * filename, gsl_vector * min, gsl_vector * max) { gsl_vector * min2 = dup_vector(min); gsl_vector * max2 = dup_vector(max); find_min_max(filename, min2, max2); max_vector(min, min2); min_vector(max, max2); gsl_vector_free(min2); gsl_vector_free(max2); }
void simulate(char* output) { FILE *f = fopen(output, "w"); int i, i1, j, j1, k, l, m, K; for (K = 1; K <= s; K++) { k = K % 2; memset(c, 0, nc * sizeof(int)); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { for(m = 0; m < nc; m++) { dmin[m] = INF; } for (i1 = 0; i1 < N; i1++) { for (j1 = 0; j1 < N; j1++) { if (!(i == i1 && j == j1)) { dmin[conf[k][i1][j1]] = min( dmin[conf[k][i1][j1]], dist(i, j, i1, j1)); } } } conf[(k + 1) % 2][i][j] = max_vector(dmin, nc); c[conf[(k + 1) % 2][i][j]]++; } } for (l = 0; l < nc; l++) { fprintf(f, "%d ", c[l]); } fprintf(f, "\n"); } for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { fprintf(f, "%d ", conf[(s + 1) % 2][i][j]); } fprintf(f, "\n"); } fclose(f); }
/* limit the space of v to [0..1] in each dimension */ void limit(gsl_vector * v) { gsl_vector * low = gsl_vector_alloc(v->size); gsl_vector * high = gsl_vector_alloc(v->size); gsl_vector_set_all(low, 0.0); gsl_vector_set_all(high, 1.0); max_vector(v, low); min_vector(v, high); gsl_vector_free(low); gsl_vector_free(high); }
int main (int argc, char *argv[]) { srand((int) getpid()); for (int i=0;i<SIZE;i++) { v[i]=rand()%1000000; } printf("max_vector: %d\n",max_vector(SIZE,v)); int max_g; int max_s; for(int i=0;i<SIZE;i++) { max_g=max_global(&v[i]); max_s=max_static(&v[i]); } printf("max_global: %d\n",max_g); printf("max_static: %d\n",max_s); return(EXIT_SUCCESS); }