Exemplo n.º 1
0
int
main ()
{
  int rval;
  uint16_t N;
  uint16_t df;

  uint16_t tmp[] = {0, 1, 2, 3, 4};
  uint32_t *t1 = (uint32_t*)&tmp[0];
  uint32_t *t2 = (uint32_t*)&tmp[1];
  *t2 += *t1;

/*
  rval = inner_loop(29, 5, 5, 1, 1);
  if (rval) exit (rval);
*/

  for (N = 29; N < 1000; N+=30) {
    for (df = 5; df < N/3; df+= 5) {
    
      rval = inner_loop(N, df, 0, 1, 1);
      if (rval) exit (rval);

      rval = inner_loop(N, 0, df, 1, 1);
      if (rval) exit (rval);

      rval = inner_loop(N, df, df, 1, 1);
      if (rval) exit (rval);
    }
  }
  printf("\nSuccess!\n");

  exit (0);
}
Exemplo n.º 2
0
int outer_formsee_loop(dataptr dz)
{
	int exit_status;
	int windows_in_buf, peakscore = 0, pitchcnt = 0;
	int in_start_portion = TRUE, least = 0, descnt = 0;

	if(sloom)
		dz->total_samps_read = 0L;
   if((exit_status = read_samps(dz->bigfbuf,dz)) < 0)
	   return(exit_status);

   while(dz->ssampsread > 0) {
    	dz->flbufptr[0] = dz->bigfbuf;
    	windows_in_buf = dz->ssampsread/dz->wanted;
		if((exit_status = inner_loop(&peakscore,&descnt,&in_start_portion,&least,&pitchcnt,windows_in_buf,dz))<0)
			return(exit_status);
		if((exit_status = write_samps(dz->bigfbuf,dz->ssampsread,dz))<0)
			return(exit_status);
	   if((exit_status = read_samps(dz->bigfbuf,dz)) < 0)
		   return(exit_status);
	}
	if(dz->ssampsread < 0) {
		sprintf(errstr,"Sound read error.\n");
		return(SYSTEM_ERROR);
	}  
    return renormalise_formsee(dz);
}
Exemplo n.º 3
0
static int outer_loop( int max_bits,
                       L3_psy_xmin_t  *l3_xmin, /* the allowed distortion of the scalefactor */
                       int ix[samp_per_frame2], /* vector of quantized values ix(0..575) */
                       L3_scalefac_t *scalefac, /* scalefactors */
                       int gr, int ch, L3_side_info_t *side_info )
{
  int bits, huff_bits;
  gr_info *cod_info = &side_info->gr[gr].ch[ch].tt;

  cod_info->quantizerStepSize = bin_search_StepSize(max_bits,ix,cod_info);

  cod_info->part2_length = part2_length(scalefac,gr,ch,side_info);
  huff_bits = max_bits - cod_info->part2_length;

  bits = inner_loop(ix, huff_bits, cod_info, gr, ch );

  cod_info->part2_length   = part2_length(scalefac,gr,ch,side_info);
  cod_info->part2_3_length = cod_info->part2_length + bits;

  return cod_info->part2_3_length;
}
Exemplo n.º 4
0
int main(int argc, char **argv)
    {
	int varmax, size, repetitions;
	int array[VARLIMIT];
	int reps, v0;
	MR_ROBDD_type *f;
	millisec clock0, clock1, clock2, clock3;
	float runtime, overhead, rate;
	int test_nodes, overhead_nodes;

	if (argc < 3) {
	    usage(argv[0]);
	    return 20;
	}
	if ((varmax=atoi(argv[2]))<1 || varmax>=VARLIMIT) {
	    usage(argv[0]);
	    printf("\n  varmax must be between 1 <= varmax < %d\n", VARLIMIT);
	    return 20;
	}
	if ((size=atoi(argv[1]))<0 || size>=varmax) {
	    usage(argv[0]);
	    printf("\n  size must be between 0 <= size < varmax\n");
	    return 20;
	}
	repetitions=(argc>3 ? atoi(argv[3]) : 1);
	if (repetitions <= 0) repetitions = 1;

	opcount = 0;
	clock0 = milli_time();
	for (reps=repetitions; reps>0; --reps) {
	    for (v0=0; v0<varmax; ++v0) {
		init_array(size, v0, array);
		f = MR_ROBDD_testing_iff_conj_array(v0, size, array);
		inner_loop(varmax, f);
		while (next_array(size, varmax, v0, array)) {
		    f = MR_ROBDD_testing_iff_conj_array(v0, size, array);
		    inner_loop(varmax, f);
		}
	    }
	}
	clock1 = milli_time();
	test_nodes = MR_ROBDD_nodes_in_use();
	MR_ROBDD_initRep();
	clock2 = milli_time();
	for (reps=repetitions; reps>0; --reps) {
	    for (v0=0; v0<varmax; ++v0) {
		init_array(size, v0, array);
		f = MR_ROBDD_testing_iff_conj_array(v0, size, array);
		dont_inner_loop(varmax, f);
		while (next_array(size, varmax, v0, array)) {
		    f = MR_ROBDD_testing_iff_conj_array(v0, size, array);
		    dont_inner_loop(varmax, f);
		}
	    }
	}
	clock3 = milli_time();
	overhead_nodes = MR_ROBDD_nodes_in_use();
	runtime = (float)(clock1-clock0)/1000;
	overhead = (float)(clock3-clock2)/1000;
	rate = ((float)opcount)/(runtime-overhead);
	printf("%s %d %d %d:  %.3f - %.3f = %.3f secs, %d ops, %d nodes, %.1f ops/sec\n",
	       argv[0], size, varmax, repetitions,
	       runtime, overhead, (runtime-overhead), opcount,
	       test_nodes-overhead_nodes, rate);
	return 0;
    }
Exemplo n.º 5
0
static void sharp_execute_job_mpi (sharp_job *job, MPI_Comm comm)
  {
  int ntasks;
  MPI_Comm_size(comm, &ntasks);
  if (ntasks==1) /* fall back to scalar implementation */
    { sharp_execute_job (job); return; }

  MPI_Barrier(comm);
  double timer=wallTime();
  job->opcnt=0;
  sharp_mpi_info minfo;
  sharp_make_mpi_info(comm, job, &minfo);

  if (minfo.npairtotal>minfo.ntasks*300)
    {
    int nsub=(minfo.npairtotal+minfo.ntasks*200-1)/(minfo.ntasks*200);
    for (int isub=0; isub<nsub; ++isub)
      {
      sharp_job ljob=*job;
      // When creating a_lm, every sub-job produces a complete set of
      // coefficients; they need to be added up.
      if ((isub>0)&&(job->type==SHARP_MAP2ALM)) ljob.flags|=SHARP_ADD;
      sharp_geom_info lginfo;
      lginfo.pair=RALLOC(sharp_ringpair,(job->ginfo->npairs/nsub)+1);
      lginfo.npairs=0;
      lginfo.nphmax = job->ginfo->nphmax;
      while (lginfo.npairs*nsub+isub<job->ginfo->npairs)
        {
        lginfo.pair[lginfo.npairs]=job->ginfo->pair[lginfo.npairs*nsub+isub];
        ++lginfo.npairs;
        }
      ljob.ginfo=&lginfo;
      sharp_execute_job_mpi (&ljob,comm);
      job->opcnt+=ljob.opcnt;
      DEALLOC(lginfo.pair);
      }
    }
  else
    {
    int lmax = job->ainfo->lmax;
    job->norm_l = sharp_Ylmgen_get_norm (lmax, job->spin);

    /* clear output arrays if requested */
    init_output (job);

    alloc_phase_mpi (job,job->ainfo->nm,job->ginfo->npairs,minfo.mmax+1,
      minfo.npairtotal);

    double *cth = RALLOC(double,minfo.npairtotal),
          *sth = RALLOC(double,minfo.npairtotal);
    int *mlim = RALLOC(int,minfo.npairtotal);
    for (int i=0; i<minfo.npairtotal; ++i)
      {
      cth[i] = cos(minfo.theta[i]);
      sth[i] = sin(minfo.theta[i]);
      mlim[i] = sharp_get_mlim(lmax, job->spin, sth[i], cth[i]);
      }

    /* map->phase where necessary */
    map2phase (job, minfo.mmax, 0, job->ginfo->npairs);

    map2alm_comm (job, &minfo);

#pragma omp parallel if ((job->flags&SHARP_NO_OPENMP)==0)
{
    sharp_job ljob = *job;
    sharp_Ylmgen_C generator;
    sharp_Ylmgen_init (&generator,lmax,minfo.mmax,ljob.spin);
    alloc_almtmp(&ljob,lmax);

#pragma omp for schedule(dynamic,1)
    for (int mi=0; mi<job->ainfo->nm; ++mi)
      {
  /* alm->alm_tmp where necessary */
      alm2almtmp (&ljob, lmax, mi);

  /* inner conversion loop */
      inner_loop (&ljob, minfo.ispair, cth, sth, 0, minfo.npairtotal,
        &generator, mi, mlim);

  /* alm_tmp->alm where necessary */
      almtmp2alm (&ljob, lmax, mi);
      }

    sharp_Ylmgen_destroy(&generator);
    dealloc_almtmp(&ljob);

#pragma omp critical
    job->opcnt+=ljob.opcnt;
} /* end of parallel region */

    alm2map_comm (job, &minfo);

  /* phase->map where necessary */
    phase2map (job, minfo.mmax, 0, job->ginfo->npairs);

    DEALLOC(mlim);
    DEALLOC(cth);
    DEALLOC(sth);
    DEALLOC(job->norm_l);
    dealloc_phase (job);
    }
  sharp_destroy_mpi_info(&minfo);
  job->time=wallTime()-timer;
  }