コード例 #1
0
ファイル: uncode_args.c プロジェクト: mklon/Corewar
void		uncode_args(unsigned char *field, t_process *proc, int op_num,
					uint32_t *ar)
{
	size_t		i;
	size_t		curr;
	short		ind;

	curr = check_pc(proc->pc + 1 + (g_op[op_num].coding_byte));
	i = 0;
	while (i < g_op[op_num].nbr_arg)
	{
		if (ar[i] == T_REG)
		{
			ar[i] = (uint32_t)field[curr];
			curr = check_pc(curr + 1);
		}
		else if (ar[i] == T_DIR)
			ar[i] = convert_arg(field, &curr, g_op[op_num].flag_direct_size);
		else if (ar[i] == T_IND)
		{
			ind = (short)convert_arg(field, &curr, IND_READ);
			if (op_num != 12)
				ind = ind % IDX_MOD;
			ar[i] = ((op_num != 2) ? get_ind(field, (proc->pc + ind)) : ind);
		}
		i++;
	}
}
コード例 #2
0
ファイル: ac-auto-machine.cpp プロジェクト: bdepwgjqet/fondue
void insert(char s[])
{
	int l=strlen(s),p=0;
	for(int i=0; i<l; i++)
	{
		int ii=get_ind(s[i]);
		if(no[p].is)
			break;
		if(no[p].next[ii]==-1)
			no[p].next[ii]=top++;
		p=no[p].next[ii];
	}
	no[p].is=1;
}
コード例 #3
0
ファイル: FC_cv.cpp プロジェクト: jfahren/BayesX
FC_cv::FC_cv(GENERAL_OPTIONS * o,DISTR * lp,
                 const ST::string & t, const ST::string & fp,
                 vector<FC_hrandom> * FChs)
  : FC(o,t,lp->nrobs,1,fp)
  {

  likep = lp;

  hrandoms = FChs;
  sampled_etas = datamatrix(likep->nrobs,o->compute_samplesize(),0);
  sampled_responses = datamatrix(likep->nrobs,o->compute_samplesize(),0);
  sampled_likelihood = datamatrix(likep->nrobs,o->compute_samplesize(),0);

  FC_sampled_l = FC(o,"",likep->nrobs,1,fp+"_like");

  effect = datamatrix(likep->nrobs,1,0);
  linpred = datamatrix(likep->nrobs,1,0);
  size =   hrandoms->size();
  get_ind();
  }
コード例 #4
0
ファイル: force_bias.c プロジェクト: mingchenaabb/PINY-XLBOMD
void force_bias_num(DAFED_INFO *dinfo,DAFED *dafed)

/*=======================================================================*/
/*            Begin subprogram:                                          */
{   /*begin routine*/
/*=======================================================================*/
/*            Local variable declarations                                */
  BIAS_HIST *bhist   = dinfo->bhist;
  C_NBLT *nblt_array = dinfo->nblt_array;
  int i,j,k;
  int lat_num;
  int sum_exp;
  int nblt_tot    = dinfo->nblt_tot;
  int n_lat_tot   = dinfo->n_lat_tot;
  int n_cv        = dinfo->n_cv;
  int *n_lat      = dinfo->n_lat;
  int *index      = (int*)malloc(n_cv*sizeof(int));
  int *index_temp = (int*)malloc(n_cv*sizeof(int));
  int *index_c    = (int*)malloc(n_cv*sizeof(int));
  int *type       = (int*)malloc(n_cv*sizeof(int));
  int ind,ind_c;
  int *diff,*diff_c;
  int bin_num;
  double min,max,w_bin;
  double pot_interp = 0.0;
  double *f_bias = (double*)malloc(n_cv*sizeof(double));
  double *s      = (double*)malloc(n_cv*sizeof(double));
  double *x,*x_c;
  double pre = 1.0;
  double prod;
  double pot_v;
  double lat_m,lat_p;

  /*printf("before\n");
  for(i=0;i<nblt_tot;i++){
     for(j=0;j<n_cv;j++)printf("%i ",nblt_array[i].diff[j]);
     printf("\n");
  }*/

  for(i=0;i<n_cv;i++){
     bin_num = dafed[i].bin_num;
     min = dafed[i].min;
     max = dafed[i].max;
     //printf("min %lg max %lg\n",min,max);
     w_bin = dafed[i].w_bin;
     s[i] = dafed[i].s;
     type[i] = dafed[i].type;
     index[i] = (int)((s[i]-min)/w_bin);
     if(index[i]>=bin_num)index[i] = bin_num-1; //prevent the round error
     lat_m = min+index[i]*w_bin;
     lat_p = min+(index[i]+1)*w_bin;
     pre *= w_bin;
     f_bias[i] = 0.0;
  }
  /*printf("after\n");
  for(i=0;i<nblt_tot;i++){
     for(j=0;j<n_cv;j++)printf("%i ",nblt_array[i].diff[j]);
     printf("\n");
  }*/
  for(i=0;i<nblt_tot;i++){
     diff = nblt_array[i].diff;
     diff_c = nblt_array[nblt_tot-1-i].diff;
     for(j=0;j<n_cv;j++){
        //printf("index %i diff %i diff_c %i\n",index[j],diff[j],diff_c[j]);
        index_temp[j] = index[j]+diff[j];
        index_c[j] = index[j]+diff_c[j];
        //printf("index_temp %i index_c %i lat_num %i\n",index_temp[j],index_c[j],dafed[j].lat_num);
     }
     ind   = get_ind(index_temp,n_lat,n_cv); 
     ind_c = get_ind(index_c,n_lat,n_cv);
     //trap
     if(ind>=n_lat_tot||ind_c>=n_lat_tot||ind<0||ind_c<0){
       for(j=0;j<n_cv;j++){
          printf("s %lg min %lg\n",dafed[j].s,dafed[j].min);
          printf("index %i diff %i diff_c %i\n",index[j],diff[j],diff_c[j]);
          printf("index_temp %i index_c %i lat_num %i\n",index_temp[j],index_c[j],dafed[j].lat_num);
       }
       printf("ind %i ind_c %i n_lat_tot %i\n",ind,ind_c,dinfo->n_lat_tot);
       exit(0);
     }
     pot_v = bhist[ind].gaussian_v;
     x_c = bhist[ind_c].x;
     prod = nblt_array[i].sign;
     for(j=0;j<n_cv;j++){
        if(type[j]==4)prod *= diff_perodic(x_c[j],s[j]);
        else prod *= x_c[j]-s[j];
     }
     pot_interp += pot_v*prod;
     for(j=0;j<n_cv;j++){
        prod = nblt_array[i].sign;
        for(k=0;k<n_cv;k++){
           if(k!=j){
              if(type[k]==4)prod *= diff_perodic(x_c[k],s[k]);
              else prod *= x_c[k]-s[k];
           }
        }
        f_bias[j] += pot_v*prod;
     }
  }
  pot_interp /= pre;
  dinfo->pot_bias = pot_interp;
  for(i=0;i<n_cv;i++){
     dafed[i].Fs += f_bias[i]/pre;
  } 
  //debug
  //printf("pot %lg\n",dinfo->pot_bias);
  //for(i=0;i<n_cv;i++)printf("%lg ",f_bias[i]); 
  //printf("\n");
  //
  free(index);
  free(index_temp);
  free(f_bias);
  free(s);
  free(index_c);
  free(type);

         
/*-------------------------------------------------------------------------*/
/*end routine*/}
コード例 #5
0
ファイル: ndarray.cpp プロジェクト: kitizz/nutmeg
T &NDArrayTyped<T>::at(const QVector<int> &inds)
{
    return *(m_data + get_ind(inds));
}
コード例 #6
0
ファイル: ndarray.cpp プロジェクト: kitizz/nutmeg
T &NDArrayTyped<T>::at(const std::initializer_list<int> &inds)
{
    return *(m_data + get_ind(inds));
}
コード例 #7
0
ファイル: Arr3Dpars.hpp プロジェクト: zakirovandrey/DTgeo4
 inline float* get_ptr(int ix, int iy, int iz) { return Arr3Dbuf+get_ind(ix,iy,iz); }