1 #ifndef STAN__COMMON__RUN_MARKOV_CHAIN_HPP
2 #define STAN__COMMON__RUN_MARKOV_CHAIN_HPP
11 template <
class Model,
class RNG,
class StartTransitionCallback,
12 class SampleRecorder,
class DiagnosticRecorder,
class MessageRecorder>
14 const int num_iterations,
22 SampleRecorder, DiagnosticRecorder, MessageRecorder>&
27 const std::string& prefix,
28 const std::string& suffix,
30 StartTransitionCallback& callback) {
31 for (
int m = 0; m < num_iterations; ++m) {
34 print_progress(m, start, finish, refresh, warmup, prefix, suffix, o);
38 if ( save && ( (m % num_thin) == 0) ) {
39 writer.write_sample_params(base_rng, init_s, *sampler, model);
40 writer.write_diagnostic_params(init_s, sampler);
virtual sample transition(sample &init_sample)=0
mcmc_writer writes out headers and samples
void run_markov_chain(stan::mcmc::base_mcmc *sampler, const int num_iterations, const int start, const int finish, const int num_thin, const int refresh, const bool save, const bool warmup, stan::io::mcmc_writer< Model, SampleRecorder, DiagnosticRecorder, MessageRecorder > &writer, stan::mcmc::sample &init_s, Model &model, RNG &base_rng, const std::string &prefix, const std::string &suffix, std::ostream &o, StartTransitionCallback &callback)
void warmup(stan::mcmc::base_mcmc *sampler, int num_warmup, int num_samples, int num_thin, int refresh, bool save, stan::io::mcmc_writer< Model, SampleRecorder, DiagnosticRecorder, MessageRecorder > &writer, stan::mcmc::sample &init_s, Model &model, RNG &base_rng, const std::string &prefix, const std::string &suffix, std::ostream &o, StartTransitionCallback &callback)
void print_progress(const int m, const int start, const int finish, const int refresh, const bool warmup, const std::string prefix, const std::string suffix, std::ostream &o)