Ejemplo n.º 1
0
Archivo: param.c Proyecto: Kafay/vlc
/* Loads a boolean parameter */
int load_builtin_param_bool(const char * name, void * engine_val, short int flags,
								int init_val, const char * alt_name) {

  param_t * param;
  value_t iv, ub, lb;

  iv.int_val = init_val;
  ub.int_val = TRUE;
  lb.int_val = FALSE;	
																
  param = create_param(name, P_TYPE_BOOL, flags, engine_val, NULL, iv, ub, lb);

  if (param == NULL) {
    return OUTOFMEM_ERROR;
  }

  if (insert_builtin_param(param) < 0) {
	free_param(param);
    return ERROR;
  }
  
  if (alt_name != NULL) {
	insert_param_alt_name(param, alt_name);  	 
  }  
  
  return SUCCESS;

}
Ejemplo n.º 2
0
Archivo: param.c Proyecto: Kafay/vlc
/* Creates a user defined parameter */
param_t * create_user_param(char * name) {

  param_t * param;
  value_t iv;
  value_t ub;
  value_t lb;
  double * engine_val;
  
  /* Set initial values to default */
  iv.double_val = DEFAULT_DOUBLE_IV;
  ub.double_val = DEFAULT_DOUBLE_UB;
  lb.double_val = DEFAULT_DOUBLE_LB;

  /* Argument checks */
  if (name == NULL)
    return NULL;

  /* Allocate space for the engine variable */
  if ((engine_val = (double*)malloc(sizeof(double))) == NULL)
    return NULL;

  (*engine_val) = iv.double_val; /* set some default init value */
  
  /* Create the new user parameter */
  if ((param = create_param(name, P_TYPE_DOUBLE, P_FLAG_USERDEF, engine_val, NULL, iv, ub, lb)) == NULL) {
    free(engine_val);
    return NULL;
  }
  if (PARAM_DEBUG) printf("create_param: \"%s\" initialized\n", param->name);
  /* Return the instantiated parameter */
  return param;
}
Ejemplo n.º 3
0
int main(){
	const int N=5, L=10;
	int i,j;
	double alpha=0.5, tau=2.0;

	/* create a list of sequences */
	struct list_dnaseq * test = create_list_dnaseq(N, L);

	for(i=0;i<N;i++){
		for(j=0;j<L;j++){
			if(i*j % 5 ==0) test->list[i]->seq[j] = 'a';
			else if(i*j % 3 ==0)test->list[i]->seq[j] = 't';
			else if(i*j % 2 ==0)test->list[i]->seq[j] = 'g';
			else test->list[i]->seq[j] = 'c';
		}
	}

	for(i=5;i<L;i++)
		test->list[0]->seq[i] = '-';
	for(i=0;i<5;i++)
		test->list[N-1]->seq[i] = '-';

	print_list_dnaseq(test);

	/* COMPUTE DISTANCES */
	struct dna_dist *distinfo = compute_dna_distances(test);
	print_dna_dist(distinfo);


	/* COMPUTE LIKELIHOOD */
	struct param *par = create_param();
	double out=0, nu1 = 0.01, nu2=0.02, t_vec[5]={0.0, 10.0, 12.0, 50.0, 100.0}, T;
	int count=0;

	par->weightNaGen = 0.001; /* near zero if no data */
	for(i=0;i<N-1;i++){
		for(j=i+1;j<N;j++){
			T = t_vec[i]>t_vec[j] ? t_vec[i] - t_vec[j] : t_vec[j]-t_vec[i];
			printf("\npair %d <-> %d:",i+1,j+1);
			printf("\nnb transi %d:", get_transi(distinfo,i,j));
			printf(" (esperance: %.1f)", T*nu1*get_nbcommon(distinfo,i,j));
			printf("\nnb transv %d:", get_transv(distinfo,i,j));
			printf(" (esperance: %.1f)", T*nu2*get_nbcommon(distinfo,i,j));
			out = compute_genlike(i, j, t_vec[i], t_vec[j], nu1, nu2, alpha, tau, distinfo, par);
			printf("\npseudo-likelihood %d <-> %d: %.5f\n",i+1,j+1, out);
		}
	}
	printf("\n");

	/* free and return */
	free_list_dnaseq(test);
	free_dna_dist(distinfo);
	free_param(par);

	return 0;
}
Ejemplo n.º 4
0
Archivo: param.c Proyecto: Kafay/vlc
/* Loads a double parameter into the builtin database */
int load_builtin_param_double(const char * name, void * engine_val, void * matrix, short int flags, 
						double init_val, double upper_bound, double lower_bound, const char * alt_name) {

  param_t * param = NULL;
  value_t iv, ub, lb;

  iv.double_val = init_val;
  ub.double_val = upper_bound;
  lb.double_val = lower_bound;
							
  /* Create new parameter of type double */
  if (PARAM_DEBUG == 2) {
	  printf("load_builtin_param_double: (name \"%s\") (alt_name = \"%s\") ", name, alt_name);
	  fflush(stdout);
  }  
  
 if ((param = create_param(name, P_TYPE_DOUBLE, flags, engine_val, matrix, iv, ub, lb)) == NULL) {
    return OUTOFMEM_ERROR;
  }
  
  if (PARAM_DEBUG == 2) {
	printf("created...");
	fflush(stdout);
   }	  
   
  /* Insert the paremeter into the database */

  if (insert_builtin_param(param) < 0) {
	free_param(param);
    return ERROR;
  }

  if (PARAM_DEBUG == 2) {
	  printf("inserted...");
	  fflush(stdout);
  }  
  
  /* If this parameter has an alternate name, insert it into the database as link */
  
  if (alt_name != NULL) {
	insert_param_alt_name(param, alt_name); 

  if (PARAM_DEBUG == 2) {
	  printf("alt_name inserted...");
	  fflush(stdout);
  	}
  
	
  }  	  

  if (PARAM_DEBUG == 2) printf("finished\n");	  
  /* Finished, return success */
  return SUCCESS;
}
Ejemplo n.º 5
0
Archivo: param.c Proyecto: Kafay/vlc
/* Creates a new parameter of type bool */
param_t * new_param_bool(const char * name, short int flags, void * engine_val,
						int upper_bound, int lower_bound, int init_val) {

  param_t * param;
  value_t iv, ub, lb;

  iv.bool_val = init_val;
  ub.bool_val = upper_bound;
  lb.bool_val = lower_bound;
							
  if ((param = create_param(name, P_TYPE_BOOL, flags, engine_val, NULL, iv, ub, lb)) == NULL)
    return NULL;
  
 
  /* Finished, return success */
  return param;
}
Ejemplo n.º 6
0
Archivo: param.c Proyecto: Kafay/vlc
/* Loads a double parameter into the builtin database */
param_t * new_param_double(const char * name, short int flags, void * engine_val, void * matrix,
						double upper_bound, double lower_bound, double init_val) {

  param_t * param;
  value_t iv, ub, lb;

  iv.double_val = init_val;
  ub.double_val = upper_bound;
  lb.double_val = lower_bound;
			     			
  if ((param = create_param(name, P_TYPE_DOUBLE, flags, engine_val, matrix,iv, ub, lb)) == NULL) 
    return NULL;
  
  
  /* Finished, return success */
  return param;
}