Exemple #1
0
double compute_boundary_work(double new_r[MAXSIZE][MAXSIZE],
		 double new_z[MAXSIZE][MAXSIZE], double new_u[MAXSIZE][MAXSIZE], 
		 double new_w[MAXSIZE][MAXSIZE], double new_p[MAXSIZE][MAXSIZE], 
		 double new_q[MAXSIZE][MAXSIZE], double deltat)
{
  int i,j,k,l;
  double boundary_work;
  double w1=0.0;
  double w2=0.0;
  double w3=0.0;
  double w4=0.0;
    
  /*work done on north line */
  l=1;
  j=1;
  for (k=2;k<problem_size;k++){
    i=k-1;
    w1+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat);
  }
  
  /*work done on south line */
  l=problem_size-1;
  j=problem_size-1;
  for (k=2;k<problem_size;k++){
    i=k-1;
    w2+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat);
  }
  
  /*work done on east line */
  k=problem_size-1;
  i=problem_size-1;
  for (l=2;l<problem_size;l++){
    j=l+1;
    w3+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat);
  }
  
  /*work done on west line */
  k=2;
  i=2;
  for (l=2;l<problem_size;l++){
    j=l+1;
    w4+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat);
  }
  boundary_work = w1 + w2 + w3 + w4;
  return boundary_work;
}
Exemple #2
0
static void *run(void *arg)
{
	int hit = 0;
	struct grep_opt *opt = arg;

	while (1) {
		struct work_item *w = get_work();
		if (!w)
			break;

		opt->output_priv = w;
		hit |= grep_source(opt, &w->source);
		grep_source_clear_data(&w->source);
		work_done(w);
	}
	free_grep_patterns(arg);
	free(arg);

	return (void*) (intptr_t) hit;
}
Exemple #3
0
static void *run(void *arg)
{
	int hit = 0;
	struct grep_opt *opt = arg;

	while (1) {
		struct work_item *w = get_work();
		if (!w)
			break;

		if (skip_binary(opt, (const char *)w->identifier))
			continue;

		opt->output_priv = w;
		if (w->type == WORK_SHA1) {
			unsigned long sz;
			void* data = load_sha1(w->identifier, &sz, w->name);

			if (data) {
				hit |= grep_buffer(opt, w->name, data, sz);
				free(data);
			}
		} else if (w->type == WORK_FILE) {
			size_t sz;
			void* data = load_file(w->identifier, &sz);
			if (data) {
				hit |= grep_buffer(opt, w->name, data, sz);
				free(data);
			}
		} else {
			assert(0);
		}

		work_done(w);
	}
	free_grep_patterns(arg);
	free(arg);

	return (void*) (intptr_t) hit;
}
Exemple #4
0
static void *run(void *arg)
{
	int hit = 0;
	struct grep_opt *opt = arg;

	while (1) {
		struct work_item *w = get_work();
		if (!w)
			break;

		opt->output_priv = w;
		if (w->source.type == GREP_SOURCE_SUBMODULE)
			hit |= grep_submodule_launch(opt, &w->source);
		else
			hit |= grep_source(opt, &w->source);
		grep_source_clear_data(&w->source);
		work_done(w);
	}
	free_grep_patterns(arg);
	free(arg);

	return (void*) (intptr_t) hit;
}