APEMoST
Defines | Functions

src/parallel_tempering.c File Reference

#include <omp.h>
#include "mcmc.h"
#include "parallel_tempering.h"
#include "parallel_tempering_beta.h"
#include "parallel_tempering_interaction.h"
#include "parallel_tempering_config.h"
#include "debug.h"
#include "define_defaults.h"
#include "gsl_helper.h"
#include "parallel_tempering_run.h"
#include "utils.h"

Defines

#define BURN_IN_ITERATIONS
#define RWM
#define ADAPT

Functions

void register_signal_handlers ()
void run_sampler (mcmc **chains, int n_beta, unsigned int n_swap, const unsigned long max_iterations, char *mode)
void report (const mcmc **chains, const int n_beta)
void calibrate_first ()
void calibrate_rest ()
void prepare_and_run_sampler (const unsigned long max_iterations, int append)
void adapt (mcmc **chains, const unsigned int n_beta, const unsigned int n_swap)
void dump (const mcmc **chains, const unsigned int n_beta, const unsigned long iter, FILE *acceptance_file, FILE **probabilities_file)

Define Documentation

#define ADAPT

Enable a constant but small rescaling of the step width to keep the acceptance rate up.

#define BURN_IN_ITERATIONS

how many iterations should be spent on burn-in

Referenced by calibrate_first(), calibrate_rest(), and check().

#define RWM

Enable Random Walk Metropolis (adaptive MCMC method) Also important: MINIMAL_STEPWIDTH, MAXIMAL_STEPWIDTH


Function Documentation

void adapt ( mcmc **  chains,
const unsigned int  n_beta,
const unsigned int  n_swap 
)
void calibrate_first ( )

needs: params file BURN_IN_ITERATIONS start values (in params file)

does: calibrate first chain (beta = 1) writes beta, stepwidths and start values as first line in file calibration_result

provides: stepwidths of first chain (calibration_result) new params file (params_suggest) new start values (calibration_result)

References BURN_IN_ITERATIONS, calc_model(), DEFAULT_ADJUST_STEP, ITER_LIMIT, markov_chain_calibrate(), MAX_AR_DEVIATION, mcmc_check(), MUL, setup_chains(), TARGET_ACCEPTANCE_RATE, write_calibrations_file(), and write_params_file().

Referenced by main().

void calibrate_rest ( )

needs: params file BURN_IN_ITERATIONS first line in calibration_result BETA_ALIGNMENT BETA_0 SKIP_CALIBRATE_ALLCHAINS

does: calibrate remaining chains (beta < 1) writes all betas, stepwidths and start values in file calibration_result

provides: stepwidths of first chain (calibration_result) new params file (params_suggest) new start values (calibration_result)

References mcmc::additional_data, BETA_0, burn_in(), BURN_IN_ITERATIONS, calc_beta_0(), calc_model(), DEFAULT_ADJUST_STEP, dump_vectorln(), dup_vector(), get_beta(), get_chain_beta(), get_n_par(), get_params_best(), get_steps(), ITER_LIMIT, markov_chain_calibrate(), MAX_AR_DEVIATION, mcmc_check(), mem_free, mem_malloc, MUL, N_BETA, mcmc::params_step, read_calibration_file(), set_beta(), set_params(), setup_chains(), TARGET_ACCEPTANCE_RATE, write_calibration_summary(), and write_calibrations_file().

Referenced by main().

void dump ( const mcmc **  chains,
const unsigned int  n_beta,
const unsigned long  iter,
FILE *  acceptance_file,
FILE **  probabilities_file 
)
void prepare_and_run_sampler ( const unsigned long  max_iterations,
int  append 
)
void register_signal_handlers ( )

Referenced by prepare_and_run_sampler().

void report ( const mcmc **  chains,
const int  n_beta 
)
void run_sampler ( mcmc **  chains,
int  n_beta,
unsigned int  n_swap,
const unsigned long  max_iterations,
char *  mode 
)