示例#1
0
/*
 *  assumes uniform prior Dirichlet
 */
void sample_alpha(double *alphatot) {
  double dirmax = DIR_TOTAL_MAX;
  if ( dirmax>ddN.T * DIR_MAX )
    dirmax = ddN.T * DIR_MAX;
#ifdef A_DEBUG
  last_val = 0;
  last_like = 0;
#endif
  if ( myarmsMH(DIR_MIN*ddN.T, dirmax,
                &alphaterms, NULL, alphatot, "alphatot",1) ) {
    yap_message("sample_alpha: error in result\n");
  }
  cache_update("alpha");
}
示例#2
0
int myarms(double xl, double xr,
	   double (*myfunc)(double x, void *mydata), 
	   void *mydata, double *xval, char *label) {
  return myarmsMH(xl, xr, myfunc, mydata, xval, label, 0);
}