示例#1
0
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);
}