MCMC class with a command-line interface. More...
#include <mcmc_para_old.h>
This class forms the basis of the MCMC used in the Bayesian analysis of neutron star mass and radius in http://github.com/awsteiner/bamr .
Definition at line 2712 of file mcmc_para_old.h.
Public Member Functions | |
Customization functions | |
virtual void | setup_cli (cli &cl) |
Set up the 'cli' object. More... | |
![]() | |
virtual void | set_names_units (std::vector< std::string > names, std::vector< std::string > units) |
Set the table names and units. | |
virtual void | initial_points_file_last (std::string fname, size_t n_param_loc, size_t offset=5) |
Read initial points from the last points recorded in file named fname . More... | |
virtual void | initial_points_file_dist (std::string fname, size_t n_param_loc, size_t offset=5) |
Read initial points from file named fname , distributing across the chain if necessary. More... | |
virtual void | initial_points_file_best (std::string fname, size_t n_param_loc, double thresh=1.0e-6, size_t offset=5) |
Read initial points from the best points recorded in file named fname . More... | |
virtual int | mcmc (size_t n_params_local, ubvector &low, ubvector &high, std::vector< func_t > &func, std::vector< fill_t > &fill) |
Perform an MCMC simulation. More... | |
std::shared_ptr< o2scl::table_units<> > | get_table () |
Get the output table. | |
void | set_table (std::shared_ptr< o2scl::table_units<> > &t) |
Set the output table. | |
void | get_chain_sizes (std::vector< size_t > &chain_sizes) |
Determine the chain sizes. More... | |
virtual void | read_prev_results (o2scl_hdf::hdf_file &hf, size_t n_param_loc, std::string name="") |
Read previous results (number of threads and walkers must be set first) More... | |
virtual int | add_line (const ubvector &pars, double log_weight, size_t walker_ix, int func_ret, bool mcmc_accept, data_t &dat, size_t i_thread, fill_t &fill) |
A measurement function which adds the point to the table. | |
virtual void | post_pointmeas () |
Function to run after point evaluation and measurement steps. | |
virtual void | mcmc_cleanup () |
Perform cleanup after an MCMC simulation. | |
virtual void | ac_coeffs (size_t ncols, ubmatrix &ac_coeffs) |
Compute autocorrelation coefficients. | |
virtual void | ac_lengths (size_t ncols, ubmatrix &ac_coeffs_cols, ubvector &ac_lengths) |
Compute autocorrelation lengths. | |
virtual void | reorder_table () |
Reorder the table by thread and walker index. | |
void | reblock (size_t n_blocks) |
Reaverage the data into blocks of a fixed size in order to avoid autocorrelations. More... | |
virtual void | write_files (bool sync_write=false) |
Write MCMC tables to files. | |
mcmc_para_old_table () | |
![]() | |
virtual int | mcmc (size_t n_params, ubvector &low, ubvector &high, std::vector< func_t > &func, std::vector< std::function< int(const ubvector &, double, size_t, int, bool, data_t &)> > &meas) |
Perform a MCMC simulation. More... | |
virtual int | mcmc (size_t n_params, ubvector &low, ubvector &high, func_t &func, std::function< int(const ubvector &, double, size_t, int, bool, data_t &)> &meas) |
Perform a MCMC simulation with a thread-safe function or with only one OpenMP thread. | |
void | set_proposal (prob_vec_t &pv) |
Set the proposal distribution. More... | |
void | set_proposal_ptrs (prob_vec_t &pv) |
Set pointers to proposal distributions. More... | |
virtual void | unset_proposal () |
Go back to random-walk Metropolis with a uniform distribution. | |
mcmc_para_old_base () | |
Protected Types | |
typedef o2scl::mcmc_para_old_table< func_t, fill_t, data_t, vec_t > | parent_t |
The parent typedef. | |
![]() | |
typedef std::function< int(const ubvector &, double, size_t, int, bool, data_t &)> | internal_measure_t |
Measurement functor type for the parent. | |
typedef mcmc_para_old_base< func_t, internal_measure_t, data_t, ubvector > | parent_t |
Type of parent class. | |
Parameter objects for the 'set' command | |
o2scl::cli::parameter_double | p_step_fac |
o2scl::cli::parameter_size_t | p_n_warm_up |
o2scl::cli::parameter_int | p_user_seed |
o2scl::cli::parameter_size_t | p_max_bad_steps |
o2scl::cli::parameter_size_t | p_n_walk |
o2scl::cli::parameter_bool | p_aff_inv |
o2scl::cli::parameter_bool | p_table_sequence |
o2scl::cli::parameter_bool | p_store_rejects |
o2scl::cli::parameter_double | p_max_time |
o2scl::cli::parameter_size_t | p_max_iters |
o2scl::cli::parameter_size_t | p_file_update_iters |
o2scl::cli::parameter_double | p_file_update_time |
o2scl::cli::parameter_string | p_prefix |
o2scl::cli::parameter_int | p_verbose |
std::vector< std::string > | cl_args |
The arguments sent to the command-line. | |
virtual void | file_header (o2scl_hdf::hdf_file &hf) |
Initial write to HDF5 file. | |
Additional Inherited Members | |
![]() | |
bool | table_sequence |
If true, ensure sure walkers and OpenMP threads are written to the table with equal spacing between rows (default true) | |
size_t | file_update_iters |
Iterations between file updates (default 0 for no file updates) | |
double | file_update_time |
Time between file updates (default 0.0 for no file updates) | |
int | table_io_chunk |
The number of tables to combine before I/O (default 1) | |
bool | store_rejects |
If true, store MCMC rejections in the table. | |
![]() | |
std::vector< size_t > | n_accept |
The number of Metropolis steps which were accepted in each independent chain (summed over all walkers) More... | |
std::vector< size_t > | n_reject |
The number of Metropolis steps which were rejected in each independent chain (summed over all walkers) More... | |
bool | meas_for_initial |
If true, call the measurement function for the initial point. | |
double | mpi_start_time |
The MPI starting time (defaults to 0.0) More... | |
size_t | max_iters |
If non-zero, the maximum number of MCMC iterations (default 0) More... | |
double | max_time |
Time in seconds (default is 0) More... | |
std::string | prefix |
Prefix for output filenames (default "mcmc") | |
bool | aff_inv |
If true, use affine-invariant Monte Carlo. | |
double | step_fac |
Stepsize factor (default 10.0) | |
size_t | n_warm_up |
Number of warm up steps (successful steps not iterations) (default 0) More... | |
int | user_seed |
If non-zero, use as the seed for the random number generator (default 0) More... | |
int | verbose |
Output control (default 0) | |
size_t | max_bad_steps |
Maximum number of failed steps when generating initial points with affine-invariant sampling (default 1000) | |
size_t | n_walk |
Number of walkers for affine-invariant MC or 1 otherwise (default 1) | |
size_t | n_walk_per_thread |
Number of walkers per thread (default 1) | |
bool | err_nonconv |
If true, call the error handler if msolve() or msolve_de() does not converge (default true) | |
bool | always_accept |
If true, accept all steps. | |
double | ai_initial_step |
Initial step fraction for affine-invariance sampling walkers (default 0.1) | |
size_t | n_threads |
Number of OpenMP threads. | |
std::vector< ubvector > | initial_points |
Initial points in parameter space. More... | |
![]() | |
static const int | mcmc_done |
Integer to indicate completion. | |
static const int | mcmc_skip |
Integer to indicate rejection. | |
![]() | |
virtual int | mcmc_init () |
MCMC initialization function. More... | |
virtual int | fill_line (const ubvector &pars, double log_weight, std::vector< double > &line, data_t &dat, size_t i_walker, fill_t &fill) |
Fill line with data for insertion into the table. | |
![]() | |
virtual void | best_point (ubvector &best, double w_best, data_t &dat) |
Function to run for the best point. | |
![]() | |
std::vector< std::string > | col_names |
Column names. | |
std::vector< std::string > | col_units |
Column units. | |
size_t | n_params |
Number of parameters. | |
std::shared_ptr< o2scl::table_units<> > | table |
Main data table for Markov chain. | |
bool | first_write |
If true, the HDF5 I/O initial info has been written to the file (set by mcmc() ) | |
std::vector< int > | walker_accept_rows |
For each walker, record the last row in the table which corresponds to an accept. | |
std::vector< int > | walker_reject_rows |
For each walker, record the last row in the table which corresponds to an reject. | |
ubvector | low_copy |
A copy of the lower limits for HDF5 output. | |
ubvector | high_copy |
A copy of the upper limits for HDF5 output. | |
size_t | last_write_iters |
Total number of MCMC acceptances over all threads at last file write() (default 0) | |
double | last_write_time |
Time at last file write() (default 0.0) | |
bool | prev_read |
If true, previous results have been read. More... | |
![]() | |
int | mpi_rank |
The MPI processor rank. | |
int | mpi_size |
The MPI number of processors. | |
std::ofstream | scr_out |
The screen output file. | |
std::vector< rng_gsl > | rg |
Random number generators. | |
std::vector< o2scl::prob_cond_mdim< ubvector > * > | prop_dist |
Pointer to proposal distribution for each thread. | |
bool | pd_mode |
If true, then use the user-specified proposal distribution. | |
bool | warm_up |
If true, we are in the warm up phase. | |
std::vector< ubvector > | current |
Current points in parameter space for each walker and each OpenMP thread. More... | |
std::vector< data_t > | data_arr |
Data array. More... | |
std::vector< bool > | switch_arr |
Data switch array for each walker and each OpenMP thread. More... | |
std::vector< std::vector< size_t > > | ret_value_counts |
Return value counters, one vector independent chain. | |
std::vector< size_t > | curr_walker |
Index of the current walker. More... | |
size_t | n_chains_per_rank |
Number of fully independent chains in each MPI rank. | |
|
inlinevirtual |
This function just adds the four commands and the 'set' parameters
Definition at line 2760 of file mcmc_para_old.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).