Public Attributes | Protected Types | Protected Member Functions | List of all members
o2scl::mcmc_para_cli< func_t, fill_t, data_t, vec_t > Class Template Reference

MCMC class with a command-line interface. More...

#include <mcmc_para.h>

Inheritance diagram for o2scl::mcmc_para_cli< func_t, fill_t, data_t, vec_t >:
o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t > o2scl::mcmc_para_base< func_t, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)>, data_t, vec_t >

Detailed Description

template<class func_t, class fill_t, class data_t, class vec_t = ubvector>
class o2scl::mcmc_para_cli< func_t, fill_t, data_t, vec_t >

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 2435 of file mcmc_para.h.

Public Member Functions

Customization functions
virtual void setup_cli (cli &cl)
 Set up the 'cli' object. More...
 
- Public Member Functions inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t >
virtual void write_files (bool sync_write=false)
 Write MCMC tables to files.
 
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 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, vec_t &low, vec_t &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 int add_line (const vec_t &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.
 
- Public Member Functions inherited from o2scl::mcmc_para_base< func_t, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)>, data_t, vec_t >
virtual int mcmc (size_t n_params, vec_t &low, vec_t &high, std::vector< func_t > &func, std::vector< std::function< int(const vec_t &, double, size_t, int, bool, data_t &)> > &meas)
 Perform a MCMC simulation. More...
 
virtual int mcmc (size_t n_params, vec_t &low, vec_t &high, func_t &func, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)> &meas)
 Perform a MCMC simulation with a thread-safe function.
 
void set_proposal (prob_vec_t &pv)
 Set the proposal distribution.
 
virtual void unset_proposal ()
 Go back to random-walk Metropolis with a uniform distribution.
 

Public Attributes

std::vector< std::string > cl_args
 The arguments sent to the command-line.
 
- Public Attributes inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t >
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 allow_estimates
 If true, allow estimates of the weight (default false)
 
bool store_rejects
 If true, store MCMC rejections in the table.
 
- Public Attributes inherited from o2scl::mcmc_para_base< func_t, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)>, data_t, vec_t >
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")
 
size_t n_threads
 Number of OpenMP threads.
 
std::vector< ubvectorinitial_points
 Initial points in parameter space. More...
 
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 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)
 

Protected Types

typedef o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t > parent_t
 
- Protected Types inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t >
typedef std::function< int(const vec_t &, double, size_t, int, bool, data_t &)> internal_measure_t
 Measurement functor type for the parent.
 
typedef mcmc_para_base< func_t, internal_measure_t, data_t, vec_t > parent_t
 Type of parent class.
 

Protected Member Functions

virtual void file_header (o2scl_hdf::hdf_file &hf)
 Initial write to HDF5 file.
 
- Protected Member Functions inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t >
virtual int mcmc_init ()
 MCMC initialization function. More...
 
virtual int fill_line (const vec_t &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.
 
- Protected Member Functions inherited from o2scl::mcmc_para_base< func_t, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)>, data_t, vec_t >
virtual void best_point (vec_t &best, double w_best, data_t &dat)
 Function to run for the best point.
 

Protected Attributes

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
 
- Protected Attributes inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t >
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.
 
interpm_idw< double * > esti
 Likelihood estimator.
 
vec_t low_copy
 A copy of the lower limits for HDF5 output.
 
vec_t 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)
 
- Protected Attributes inherited from o2scl::mcmc_para_base< func_t, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)>, data_t, vec_t >
std::ofstream scr_out
 The screen output file.
 
std::vector< rng_gslrg
 Random number generators.
 
std::vector< o2scl::prob_cond_mdim< vec_t > *> 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< vec_t > 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.
 
int mpi_rank
 The MPI processor rank.
 
int mpi_size
 The MPI number of processors.
 

Additional Inherited Members

- Static Public Attributes inherited from o2scl::mcmc_para_base< func_t, std::function< int(const vec_t &, double, size_t, int, bool, data_t &)>, data_t, vec_t >
static const int mcmc_done
 Integer to indicate completion.
 
static const int mcmc_skip
 Integer to indicate rejection.
 

Member Function Documentation

◆ setup_cli()

template<class func_t , class fill_t , class data_t , class vec_t = ubvector>
virtual void o2scl::mcmc_para_cli< func_t, fill_t, data_t, vec_t >::setup_cli ( cli cl)
inlinevirtual

This function just adds the four commands and the 'set' parameters

Definition at line 2481 of file mcmc_para.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).