Ejemplo n.º 1
0
Archivo: stepsupp.c Proyecto: nasa/QuIP
void delete_opt_params(SINGLE_QSP_ARG_DECL)
{
	List *lp;
	Node *np;

	lp = opt_param_list();
	if( lp == NULL ) return;
	np=QLIST_HEAD(lp);
	while( np!= NULL ){
		Opt_Param *opp;
		Node *next;

		opp = (Opt_Param *)(np->n_data);
		next=np->n_next;
		del_opt_param(opp);
		np=next;
	}
}
Ejemplo n.º 2
0
Archivo: weibull.c Proyecto: E-LLP/QuIP
static void weibull_fit(QSP_ARG_DECL  Data_Tbl *dp,int ntrac)		/** maximum liklihood fit */
{
	Opt_Param op1, *alpha_opp=(&op1);
	Opt_Param op2, *beta_opp=(&op2);

	/* initialize global */

	the_dtp = dp;

	/* initialize the parameters */

	delete_opt_params(SINGLE_QSP_ARG);	/* clear any existing parameters */

	alpha_opp->op_name = ALPHA_NAME;
	alpha_opp->ans = xval_array[ _nvals/2 ];
	if( xval_array[0] < xval_array[_nvals-1] ){
		alpha_opp->maxv =  xval_array[_nvals-1];
		alpha_opp->minv =  xval_array[0];
	} else {
		alpha_opp->maxv = xval_array[0];
		alpha_opp->minv = xval_array[_nvals-1];
	}
	if( alpha_opp->minv < 0.0 ){
		WARN("wiebull fit will blow up for negative x values");
		return;
	}
	alpha_opp->delta = (float) fabs( xval_array[_nvals/2] - xval_array[ (_nvals/2)+1 ] );
	alpha_opp->mindel = (float) 1.0e-30;

	add_opt_param(QSP_ARG  alpha_opp);


	beta_opp->op_name = BETA_NAME;
	beta_opp->ans = 2;
	beta_opp->maxv = 10000.0;
	beta_opp->minv = 0.0;
	beta_opp->delta = 0.5;
	beta_opp->mindel = (float) 1.0e-30;

	add_opt_param(QSP_ARG  beta_opp);

	if( fc_flag ){
		w_gamma = 0.5;
	} else {
		w_gamma = error_rate;
	}


	optimize(QSP_ARG  w_likelihood);

	alpha_opp=get_opt_param(QSP_ARG  ALPHA_NAME);
//#ifdef CAUTIOUS
//	if( alpha_opp==NO_OPT_PARAM ){
//		ERROR1("CAUTIOUS:  missing alpha param");
//		IOS_RETURN
//	}
//#endif
	assert( alpha_opp != NO_OPT_PARAM );

	alpha = alpha_opp->ans;

	beta_opp=get_opt_param(QSP_ARG  BETA_NAME);
//#ifdef CAUTIOUS
//	if( beta_opp==NO_OPT_PARAM ){
//		ERROR1("CAUTIOUS:  missing beta param");
//		IOS_RETURN
//	}
//#endif
	assert( beta_opp != NO_OPT_PARAM );

	beta = beta_opp->ans;

	/* clean up */
	del_opt_param(QSP_ARG  beta_opp);
	del_opt_param(QSP_ARG  alpha_opp);
}