void sample_hyperpriors(double res){ sample_alpha(res); sample_U(); sample_V(); //if (tensor) // sample_T(); }
void NormalVarianceMixtureBaseError::sampleV(const int i, const Eigen::VectorXd& res, int n_s ) { if(n_s == -1) n_s = Vs[i].size(); if(common_V == 0){ for(int j = 0; j < n_s; j++){ double res2 = pow(res[j]/sigma, 2); Vs[i][j] = sample_V(res2, -1); } } else { double tmp = res.array().square().sum()/pow(sigma, 2); double cv = sample_V(tmp, n_s); for(int j = 0; j < n_s; j++) Vs[i][j] = cv; } }