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

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

#include <mcmc_mpi.h>

Inheritance diagram for o2scl::mcmc_cli< func_t, fill_t, data_t, vec_t >:
o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t > o2scl::mcmc_table< func_t, fill_t, data_t, vec_t > o2scl::mcmc_base< func_t, std::function< int(const vec_t &, double, size_t, bool, data_t &)>, data_t, vec_t >

Public Member Functions

virtual void run (int argc, char *argv[])
 Main wrapper for parsing command-line arguments.
 
Customization functions
virtual void setup_cli ()
 Set up the 'cli' object. More...
 
- Public Member Functions inherited from o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t >
virtual void set_seed ()
 Default method for setting the random seed.
 
virtual int mcmc (size_t np, vec_t &init, vec_t &low, vec_t &high, func_t &func, fill_t &fill)
 Perform an MCMC simulation.
 
virtual void update_files ()
 Update files with current table.
 
virtual int add_line (const ubvector &pars, double weight, size_t ix, bool new_meas, data_t &dat, fill_t &fill)
 Add a measurement to the table.
 
virtual int mcmc_init ()
 User-defined initialization function.
 
virtual void best_point (ubvector &best, double w_best)
 Output the best point so far.
 
int set_initial_point (std::vector< std::string > &sv, bool itive_com)
 Set the first point.
 
 mcmc_mpi ()
 Create an MCMC object with model m.
 
- Public Member Functions inherited from o2scl::mcmc_table< func_t, fill_t, data_t, vec_t >
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.
 
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.
 
virtual int add_line (const vec_t &pars, double log_weight, size_t walker_ix, bool new_meas, data_t &dat, fill_t &fill)
 A measurement function which adds the point to the table.
 
- Public Member Functions inherited from o2scl::mcmc_base< func_t, std::function< int(const vec_t &, double, size_t, bool, data_t &)>, data_t, vec_t >
virtual int mcmc (size_t nparams, vec_t &init, vec_t &low, vec_t &high, func_t &func, std::function< int(const vec_t &, double, size_t, bool, data_t &)> &meas)
 Perform an MCMC simulation. More...
 
virtual void set_proposal (o2scl::prob_cond_mdim< vec_t > &p)
 Set the proposal distribution.
 
virtual void unset_proposal ()
 Go back to random-walk Metropolis with a uniform distribution.
 

Protected Types

typedef boost::numeric::ublas::vector< double > ubvector
 
typedef boost::numeric::ublas::matrix< double > ubmatrix
 
typedef o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t > parent_t
 
- Protected Types inherited from o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t >
typedef boost::numeric::ublas::vector< double > ubvector
 
typedef boost::numeric::ublas::matrix< double > ubmatrix
 
typedef o2scl::mcmc_table< func_t, fill_t, data_t, vec_t > parent_t
 
- Protected Types inherited from o2scl::mcmc_table< func_t, fill_t, data_t, vec_t >
typedef std::function< int(const vec_t &, double, size_t, bool, data_t &)> internal_measure_t
 Measurement functor type for the parent.
 
typedef mcmc_base< func_t, internal_measure_t, data_t, vec_t > parent_t
 Type of parent class.
 

Protected Member Functions

virtual void first_update (o2scl_hdf::hdf_file &hf)
 Initial write to HDF5 file.
 
- Protected Member Functions inherited from o2scl::mcmc_table< func_t, fill_t, data_t, vec_t >
virtual int fill_line (const vec_t &pars, double log_weight, std::vector< double > &line, data_t &dat, fill_t &fill)
 Fill line with data for insertion into the table.
 
- Protected Member Functions inherited from o2scl::mcmc_base< func_t, std::function< int(const vec_t &, double, size_t, bool, data_t &)>, data_t, vec_t >
virtual void mcmc_cleanup ()
 Cleanup after the MCMC.
 
virtual void best_point (vec_t &best, double w_best, data_t &dat)
 Function to run for the best point.
 

Protected Attributes

o2scl::cli cl
 Command-line interface.
 
std::vector< std::string > cl_args
 The arguments sent to the command-line.
 
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_double p_max_time
 
o2scl::cli::parameter_size_t p_max_iters
 
o2scl::cli::parameter_int p_max_chain_size
 
o2scl::cli::parameter_int p_file_update_iters
 
o2scl::cli::parameter_bool p_output_meas
 
o2scl::cli::parameter_string p_prefix
 
o2scl::cli::parameter_int p_verbose
 
- Protected Attributes inherited from o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t >
o2scl::err_hnd_cpp error_handler
 Error handler for each thread.
 
size_t n_params
 The number of parameters.
 
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.
 
int mpi_rank
 The MPI processor rank.
 
int mpi_nprocs
 The MPI number of processors.
 
double mpi_start_time
 The MPI starting time.
 
- Protected Attributes inherited from o2scl::mcmc_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.
 
std::shared_ptr< o2scl::table_units<> > tab
 Main data table for Markov chain.
 
std::vector< int > walker_rows
 Record the last row in the table which corresponds to each walker.
 
- Protected Attributes inherited from o2scl::mcmc_base< func_t, std::function< int(const vec_t &, double, size_t, bool, data_t &)>, data_t, vec_t >
rng_gsl rg
 Random number generator.
 
o2scl::prob_cond_mdim< vec_t > * prop_dist
 Proposal distribution.
 
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.
 
std::vector< data_t > data_arr
 Data array.
 
std::vector< bool > switch_arr
 Data switch array.
 
std::vector< size_t > ret_value_counts
 Return value counters.
 
size_t curr_walker
 Index of the current walker.
 
size_t n_init_points
 Number of initial points specified by the user;.
 

Additional Inherited Members

- Public Attributes inherited from o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t >
std::ofstream scr_out
 The screen output file.
 
bool file_opened
 If true, scr_out has been opened.
 
ubvector initial_point
 If true, output MC accepts and rejects (default true) More...
 
std::string initial_point_file
 The file containing the initial point.
 
bool first_file_update
 If true, then first_update() has been called.
 
size_t chain_index
 Number of complete Markov chain segments.
 
size_t max_iters
 Maximum number of iterations (default 0)
 
double max_time
 Time in seconds (default is 86400 seconds or 1 day)
 
bool output_meas
 Output each measurement.
 
std::string prefix
 Prefix for output filenames.
 
int file_update_iters
 The number of MCMC successes between file updates (default 40)
 
int max_chain_size
 Maximum size of Markov chain (default 10000)
 
int initial_point_type
 
- Public Attributes inherited from o2scl::mcmc_base< func_t, std::function< int(const vec_t &, double, size_t, bool, data_t &)>, data_t, vec_t >
size_t n_accept
 The number of Metropolis steps which were accepted.
 
size_t n_reject
 The number of Metropolis steps which were rejected.
 
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)
 
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)
 
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.
 
- Static Public Attributes inherited from o2scl::mcmc_mpi< func_t, fill_t, data_t, vec_t >
static const int fp_unspecified =-1
 
static const int fp_last =-2
 
static const int fp_best =-3
 
- Static Public Attributes inherited from o2scl::mcmc_base< func_t, std::function< int(const vec_t &, double, size_t, 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.
 

Detailed Description

template<class func_t, class fill_t, class data_t, class vec_t = boost::numeric::ublas::vector<double>>
class o2scl::mcmc_cli< func_t, fill_t, data_t, vec_t >

Definition at line 773 of file mcmc_mpi.h.

Member Function Documentation

◆ setup_cli()

template<class func_t , class fill_t , class data_t , class vec_t = boost::numeric::ublas::vector<double>>
virtual void o2scl::mcmc_cli< func_t, fill_t, data_t, vec_t >::setup_cli ( )
inlinevirtual

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

Definition at line 857 of file mcmc_mpi.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).