Beispiel #1
0
///startet das Setup
void button_setup_clicked (GtkWidget *widget, gpointer data){
	//startet das Setupfenster
	setup_run (data);
}
int main( int argc, const char* argv[] )
{
	int nparams = 5;
	int npreds = 5*2;
	int point_num = 5;
	int seed = 17;
	int ihalo = 0;
	int mode, write_pred_saparately;
	double dbuf;
	double *params, *preds;
	double *p;
	int irun, iparam;
	struct interval *param_interval;
	char input_param_list[200];
	FILE *fp;

    if(argc < 3)
    {
        printf("\n  usage: sample_gstructure 0 <random_seed (cannot be 0!)>\n\n");
        printf("\n  usage: sample_gstructure 1 <ParameterList>\n\n");
        exit(1);
    }

    mode = atoi(argv[1]);

    param_interval = (struct interval *) malloc(sizeof(struct interval)*nparams);
    if (mode == 0)
    {
    	seed = atoi(argv[2]);
    	printf("In the sampling mode... The code is generating parameter samples with a random seed=%d...\n\n", seed);

    	param_interval[0].min = 0.0;
    	param_interval[0].max = 1.0;
    	param_interval[1].min = 0.0;
    	param_interval[1].max = 3.0;
    	param_interval[2].min = 0.0;
    	param_interval[2].max = 1.0;
    	param_interval[3].min = 0.01;
    	param_interval[3].max = 0.05;
    	param_interval[4].min = 0.0;
    	param_interval[4].max = 1.0;
    	if(!(  fp=fopen("param_range.txt","w")))
    	{
    		printf("I can not open the file param_range.txt.");
    		exit(1);
    	}
    	fprintf(fp, "2 %d\n", nparams);
    	for(iparam=0; iparam<nparams; iparam++)
    	{
    		fprintf(fp, "%g %g\n", param_interval[iparam].min, param_interval[iparam].max);
    	}
    	fclose(fp);

    	p = (double *) malloc(nparams * point_num * sizeof(double));
    	general_parameter_sample(nparams, point_num, param_interval, seed, p);
    }
    else
    {
    	if(argc < 3)
    	{
    		printf("In a mode where a pre-generated parameter list is expected.\n");
    		printf("\n  usage: sample_gstructure 1 <ParameterList>\n\n");
    	    exit(1);
    	}
    	strcpy(input_param_list, argv[2]);
    	if(!(  fp=fopen(input_param_list,"r")))
    	{
    	    printf("I cannot open the file %s.", input_param_list);
    	    exit(1);
    	}
    	printf("Reading file %s.", input_param_list);
    	fscanf(fp, "%d %d\n", &point_num, &nparams);
    	printf("%d %d\n", point_num, nparams);

    	p = (double *) malloc(nparams * point_num * sizeof(double));
    	for(irun=0; irun<point_num; irun++)
    	{
    		for(iparam=0; iparam<nparams; iparam++)
    		{
    			fscanf(fp, "%lf ", &dbuf);
    			p[irun*nparams+iparam] = dbuf;
    			//printf("%g %g ", dbuf, p[irun*nparams+iparam]);
    		}
    		//printf("\n");
    	}
    	fclose(fp);

    }
	params = (double *) malloc(sizeof(double) * nparams);
	preds = (double *) malloc(sizeof(double) * npreds);

    setup_run();

    for(irun=0; irun<point_num; irun++)
    {
    	for(iparam=0; iparam<nparams; iparam++)
    	{
    		params[iparam] = p[irun*nparams+iparam];
    	}
    	run_galaxy(params, nparams, preds, npreds, mode=0, irun);
    }
    finalize_run();

    free(preds);
    free(params);
    free(p);
    free(param_interval);

    return 0;
}