/* * 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"); }
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); }