MCMC class with a command-line interface. More...
#include <mcmc_para.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 3029 of file mcmc_para.h.
Public Member Functions | |
Customization functions | |
| virtual void | setup_cli (cli &cl) |
| Set up the 'cli' object. More... | |
| 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, ubvector > | |
| virtual void | set_names_units (std::vector< std::string > names, std::vector< std::string > units) |
| Set the table names and units. | |
| 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_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_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 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... | |
| 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. | |
| 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 | 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... | |
| 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 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 void | critical_extra (size_t i_thread) |
| Additional code to execute inside the OpenMP critical section. | |
| virtual void | critical_extra (size_t i_thread) |
| Additional code to execute inside the OpenMP critical section. | |
| 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 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 | mcmc_cleanup () |
| Perform cleanup after an MCMC simulation. | |
| virtual void | mcmc_cleanup () |
| Perform cleanup after an MCMC simulation. | |
| virtual void | ac_coeffs (size_t icol, std::vector< double > &ac_coeff_avg, int loc_verbose=0) |
Compute autocorrelation coefficient for column with index icol averaging over all walkers and all threads. | |
| virtual void | ac_coeffs (size_t icol, std::vector< double > &ac_coeff_avg, int loc_verbose=0) |
Compute autocorrelation coefficient for column with index icol averaging over all walkers and all threads. | |
| virtual void | reorder_table () |
| Reorder the table by thread and walker index. | |
| 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... | |
| 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. | |
| virtual void | write_files (bool sync_write=false) |
| Write MCMC tables to files. | |
| mcmc_para_table () | |
| mcmc_para_table () | |
Public Member Functions inherited from o2scl::mcmc_para_base< func_t, std::function< int(const ubvector &, double, size_t, int, bool, data_t &)>, data_t, ubvector > | |
| 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. | |
| 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 (prob_vec_t &pv) |
| Set the proposal distribution. More... | |
| void | set_proposal_ptrs (prob_ptr_vec_t &pv) |
| Set pointers to proposal distributions. 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. | |
| virtual void | unset_proposal () |
| Go back to random-walk Metropolis with a uniform distribution. | |
| mcmc_para_base () | |
| mcmc_para_base () | |
Protected Types | |
| typedef o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t > | parent_t |
| The parent typedef. | |
| typedef o2scl::mcmc_para_table< func_t, fill_t, data_t, vec_t > | parent_t |
| The parent typedef. | |
Protected Types inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, ubvector > | |
| typedef std::function< int(const ubvector &, double, size_t, int, bool, data_t &)> | internal_measure_t |
| Measurement functor type for the parent. | |
| 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_base< func_t, internal_measure_t, data_t, ubvector > | parent_t |
| Type of parent class. | |
| typedef mcmc_para_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. | |
| virtual void | file_header (o2scl_hdf::hdf_file &hf) |
| Initial write to HDF5 file. | |
Additional Inherited Members | |
Public Attributes inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, ubvector > | |
| 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) | |
| size_t | table_prealloc |
| Number of rows to allocate for the table before the MCMC run. | |
| 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. | |
Public Attributes inherited from o2scl::mcmc_para_base< func_t, std::function< int(const ubvector &, double, size_t, int, bool, data_t &)>, data_t, ubvector > | |
| 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) | |
| std::vector< double > | step_vec |
| Optionally specify step sizes for each parameter. | |
| bool | couple_threads |
| If true, couple the walkers across threads (default false) | |
| 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 (per openMP thread) for affine-invariant MC or 1 otherwise (default 1) More... | |
| 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... | |
| size_t | n_walk_per_thread |
| Number of walkers per thread (default 0 to set equal to n_walk) | |
Static Public Attributes inherited from o2scl::mcmc_para_base< func_t, std::function< int(const ubvector &, double, size_t, int, bool, data_t &)>, data_t, ubvector > | |
| static const int | mcmc_done |
| Integer to indicate completion. | |
| static const int | mcmc_skip |
| Integer to indicate rejection. | |
Protected Member Functions inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, ubvector > | |
| virtual int | mcmc_init () |
| MCMC initialization function. More... | |
| 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 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. | |
Protected Member Functions inherited from o2scl::mcmc_para_base< func_t, std::function< int(const ubvector &, double, size_t, int, bool, data_t &)>, data_t, ubvector > | |
| virtual void | best_point (ubvector &best, double w_best, data_t &dat) |
| Function to run for the best point. More... | |
| virtual void | best_point (ubvector &best, double w_best, data_t &dat) |
| Function to run for the best point. | |
Protected Attributes inherited from o2scl::mcmc_para_table< func_t, fill_t, data_t, ubvector > | |
| 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... | |
Protected Attributes inherited from o2scl::mcmc_para_base< func_t, std::function< int(const ubvector &, double, size_t, int, bool, data_t &)>, data_t, ubvector > | |
| 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. More... | |
|
inlinevirtual |
This function just adds the four commands and the 'set' parameters
Definition at line 3077 of file mcmc_para.h.
|
inlinevirtual |
This function just adds the four commands and the 'set' parameters
Definition at line 3119 of file mcmc_para_new.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).