コード例 #1
0
ファイル: options.cpp プロジェクト: rdewaele/adhd
enum spawn_type spawn_typeFromString(const char * st) {
	STRING2ENUM(st, TREE);
	STRING2ENUM(st, LINEAR);
	return TREE;
}
コード例 #2
0
ファイル: options.cpp プロジェクト: rdewaele/adhd
enum pattern_type pattern_typeFromString(const char * pt) {
	STRING2ENUM(pt, RANDOM);
	STRING2ENUM(pt, INCREASING);
	STRING2ENUM(pt, DECREASING);
	return RANDOM;
}
コード例 #3
0
ファイル: ABC.c プロジェクト: JZorrilla/camelus
SMC_ABC_t *initialize_SMC_ABC_t(peak_param *peak, error **err)
{
  SMC_ABC_t *ABC = (SMC_ABC_t*)malloc_err(sizeof(SMC_ABC_t), err); forwardError(*err, __LINE__,);
  ABC->d         = peak->ABC_d;
  ABC->p         = peak->ABC_p;
  ABC->r_stop    = peak->ABC_r_stop;
  int i;
  STRING2ENUM(ABC->summ, peak->ABC_summ, summary_t, STR_SUMMARY_T, i, NB_SUMMARY_T, err); forwardError(*err, __LINE__,);
  
  ABC->epsilon_0 = DBL_MAX;
  ABC->priorFct  = prior_pentagon;
  
  ABC->t         = 0;
  ABC->oldPart   = initialize_particle_arr(ABC->d, ABC->p, err); forwardError(*err, __LINE__,);
  ABC->newPart   = initialize_particle_arr(ABC->d, ABC->p, err); forwardError(*err, __LINE__,);
  ABC->diffList  = initialize_double_arr(ABC->p);
  
  if (ABC->summ == abd6) {
    ABC->obsSummary   = initialize_double_arr(6);
    ABC->simulSummary = initialize_double_arr(6);
    ABC->peakHist     = initialize_hist_t(6);
    set_hist_t(ABC->peakHist, 3.5, 6.5);
    ABC->peakHist->x_max = 1000.0; //-- So that bins are [3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 1000.0]
    ABC->summaryFct   = summary_abd_all;
    ABC->distFct      = dist_abd6;
  }
  else if (ABC->summ == pct6) {
    ABC->obsSummary   = initialize_double_arr(6);
    ABC->simulSummary = initialize_double_arr(6);
    ABC->summaryFct   = summary_pct6;
    ABC->distFct      = dist_6D;
  }
  else if (ABC->summ == cut6) {
    ABC->obsSummary   = initialize_double_arr(6);
    ABC->simulSummary = initialize_double_arr(6);
    ABC->summaryFct   = summary_cut6;
    ABC->distFct      = dist_6D;
  }
  else if (ABC->summ == abd5) {
    ABC->obsSummary   = initialize_double_arr(5);
    ABC->simulSummary = initialize_double_arr(5);
    ABC->peakHist     = initialize_hist_t(5);
    ABC->peakHist->x_lower[0] = 3.0;
    ABC->peakHist->x_lower[1] = 3.8;
    ABC->peakHist->x_lower[2] = 4.5;
    ABC->peakHist->x_lower[3] = 5.3;
    ABC->peakHist->x_lower[4] = 6.2;
    ABC->peakHist->x_max      = 1000.0; //-- So that bins are [3.0, 3.8, 4.5, 5.3, 6.2, 1000.0]
    ABC->summaryFct   = summary_abd_all;
    ABC->distFct      = dist_abd5;
  }
  else if (ABC->summ == pct5) {
    ABC->obsSummary   = initialize_double_arr(5);
    ABC->simulSummary = initialize_double_arr(5);
    ABC->summaryFct   = summary_pct5;
    ABC->distFct      = dist_pct5;
  }
  else if (ABC->summ == cut5) {
    ABC->obsSummary   = initialize_double_arr(5);
    ABC->simulSummary = initialize_double_arr(5);
    ABC->summaryFct   = summary_cut5;
    ABC->distFct      = dist_cut5;
  }
  else if (ABC->summ == pct4) {
    ABC->obsSummary   = initialize_double_arr(4);
    ABC->simulSummary = initialize_double_arr(4);
    ABC->summaryFct   = summary_pct4;
    ABC->distFct      = dist_4D;
  }
  else if (ABC->summ == pct998) {
    ABC->obsSummary   = initialize_double_arr(1);
    ABC->simulSummary = initialize_double_arr(1);
    ABC->summaryFct   = summary_pct998;
    ABC->distFct      = dist_1D;
  }
  else if (ABC->summ == pct996) {
    ABC->obsSummary   = initialize_double_arr(1);
    ABC->simulSummary = initialize_double_arr(1);
    ABC->summaryFct   = summary_pct996;
    ABC->distFct      = dist_1D;
  }
  else if (ABC->summ == cut900) {
    ABC->obsSummary   = initialize_double_arr(1);
    ABC->simulSummary = initialize_double_arr(1);
    ABC->summaryFct   = summary_cut900;
    ABC->distFct      = dist_1D;
  }
  else {*err = addError(peak_unknown, "Unknown summary type", *err, __LINE__); forwardError(*err, __LINE__,);}
  
  int length       = (peak->resol[0] - 2 * peak->bufferSize) * (peak->resol[1] - 2 * peak->bufferSize);
  cosmo_hm *cmhm   = initialize_cosmo_hm_default(err);                                          forwardError(*err, __LINE__,);
  
  ABC->sampArr     = initialize_sampler_arr(peak->N_z_halo, peak->nbMassBins);
  ABC->hMap        = initialize_halo_map(peak->resol[0], peak->resol[1], peak->theta_pix, err); forwardError(*err, __LINE__,);
  ABC->gMap        = initialize_gal_map(peak->resol[0], peak->resol[1], peak->theta_pix, err);  forwardError(*err, __LINE__,);
  makeGalaxies(cmhm, peak, ABC->gMap, err);                                                     forwardError(*err, __LINE__,);
  ABC->kMap        = initialize_map_t(peak->resol[0], peak->resol[1], peak->theta_pix, err);    forwardError(*err, __LINE__,);
  ABC->nMap        = initialize_map_t(peak->resol[0], peak->resol[1], peak->theta_pix, err);    forwardError(*err, __LINE__,);
  ABC->transformer = initialize_FFT_t(peak->FFTSize, peak->FFTSize);
  fillGaussianKernel(ABC->transformer, peak->s);
  ABC->peakList    = initialize_double_arr(length);
  
  free_parameters_hm(&cmhm);
  printf("ABC initialization done\n");
  return ABC;
}