51 namespace statistics {
58 typedef std::function<std::vector<double>(std::vector<double>, std::shared_ptr<void>, std::vector<double> &)>
model_function_1D;
65 typedef std::function<std::vector<std::vector<double>>(std::vector<double>, std::vector<double>, std::shared_ptr<void>, std::vector<double> &)>
model_function_2D;
72 typedef std::function<std::vector<std::vector<double>>(std::vector<std::vector<double>>, std::shared_ptr<void>, std::vector<double> &)>
model_function_generic;
120 Model (
const int nparameters, std::vector<ParameterType> parameterTypes, std::vector<std::string> parameterNames,
const std::shared_ptr<void>
inputs)
147 { (void)
function;
ErrorCBL(
"",
"set_function",
"Model.h"); }
159 void set_function (
const std::vector<double>(*
function)(
const std::vector<double> xx, std::vector<double> &val))
160 { (void)
function;
ErrorCBL(
"",
"set_function",
"Model.h"); }
168 { (void)
function;
ErrorCBL(
"",
"set_function",
"Model.h"); }
193 void set_parameters (
const size_t nparameters, std::vector<ParameterType> parameterTypes, std::vector<std::string> parameterNames);
220 std::vector<std::vector<double>>
operator () (
const std::vector<std::vector<double>> xx, std::vector<double> &
parameters)
const;
246 { (void)xx; (void)
parameters;
ErrorCBL(
"",
"operator ()",
"Model.h"); std::vector<double> vv;
return vv; }
260 { (void)xx; (void)yy; (void)
parameters;
ErrorCBL(
"",
"operator ()",
"Model.h");
return 0; }
275 virtual std::vector<std::vector<double>>
operator () (
const std::vector<double> xx,
const std::vector<double> yy, std::vector<double> &
parameters)
const
276 { (void)xx; (void)yy; (void)
parameters;
ErrorCBL(
"",
"operator ()",
"Model.h"); std::vector<std::vector<double>> vv;
return vv; }
290 void stats_from_chains (
const std::vector<std::vector<double>> xx, std::vector<std::vector<double>> &median_model, std::vector<std::vector<double>> &low_model, std::vector<std::vector<double>> &up_model,
const int start=0,
const int thin=1);
303 virtual void stats_from_chains (
const std::vector<double> xx, std::vector<double> &median_model, std::vector<double> &low_model, std::vector<double> &up_model,
const int start=0,
const int thin=1)
304 { (void)xx; (void)median_model; (void)low_model; (void)up_model; (void)start; (void)thin;
ErrorCBL(
"",
"stats_from_chains",
"Model.h"); }
321 virtual void stats_from_chains (
const std::vector<double> xx,
const std::vector<double> yy, std::vector<std::vector<double>> &median_model, std::vector<std::vector<double>> &low_model, std::vector<std::vector<double>> &up_model,
const int start=0,
const int thin=1)
322 { (void)xx; (void)yy; (void)median_model; (void)low_model; (void)up_model; (void)start; (void)thin;
ErrorCBL(
"",
"stats_from_chains",
"Model.h"); }
335 virtual void write (
const std::string output_dir,
const std::string output_file,
const std::vector<double> xx,
const std::vector<double>
parameters)
352 virtual void write (
const std::string output_dir,
const std::string output_file,
const std::vector<double> xx,
const std::vector<double> yy,
const std::vector<double>
parameters)
353 { (void)output_dir; (void)output_file; (void)xx; (void)yy; (void)
parameters;
cbl::ErrorCBL(
"",
"write",
"Model.h"); }
364 virtual void write_at_bestfit (
const std::string output_dir,
const std::string output_file,
const std::vector<double> xx)
365 { (void)output_dir; (void)output_file; (void)xx;
cbl::ErrorCBL(
"",
"write_at_bestfit",
"Model.h"); }
379 virtual void write_at_bestfit (
const std::string output_dir,
const std::string output_file,
const std::vector<double> xx,
const std::vector<double> yy)
380 { (void)output_dir; (void)output_file; (void)xx; (void)yy;
cbl::ErrorCBL(
"",
"write_at_bestfit",
"Model.h"); }
393 virtual void write_from_chains (
const std::string output_dir,
const std::string output_file,
const std::vector<double> xx,
const int start=0,
const int thin=1)
394 { (void)output_dir; (void)output_file; (void)xx; (void)start; (void)thin;
cbl::ErrorCBL(
"",
"write_from_chains",
"Model.h"); }
410 virtual void write_from_chains (
const std::string output_dir,
const std::string output_file,
const std::vector<double> xx,
const std::vector<double> yy,
const int start=0,
const int thin=1)
411 { (void)output_dir; (void)output_file; (void)xx; (void)yy; (void)start; (void)thin;
cbl::ErrorCBL(
"",
"write_from_chains",
"Model.h"); }
The class ModelParameters.
virtual void write_from_chains(const std::string output_dir, const std::string output_file, const std::vector< double > xx, const std::vector< double > yy, const int start=0, const int thin=1)
write the model at xx, yy computing 16th, 50th and 84th percentiles from the chains.
std::shared_ptr< void > m_inputs
inputs of the model
virtual void write(const std::string output_dir, const std::string output_file, const std::vector< double > xx, const std::vector< double > parameters)
write the model at xx for given parameters
std::shared_ptr< ModelParameters > parameters()
return the model parameters
void set_parameters(const std::shared_ptr< ModelParameters > parameters)
set the model parameters
model_function_generic m_function
the model function
virtual void write_from_chains(const std::string output_dir, const std::string output_file, const std::vector< double > xx, const int start=0, const int thin=1)
write the model at xx computing 16th, 50th and 84th percentiles from the chains.
std::shared_ptr< ModelParameters > m_parameters
parameters of the model
Dim m_dimension
the model dimension
virtual void write_at_bestfit(const std::string output_dir, const std::string output_file, const std::vector< double > xx, const std::vector< double > yy)
write the model at xx, yy with best-fit parameters obtained from likelihood maximization
std::vector< std::vector< double > > operator()(const std::vector< std::vector< double >> xx, std::vector< double > ¶meters) const
evalueate the model function at xx, for Model1D
Model()=default
default constructor
void set_function(const model_function_2D function)
set the model function, for Model2D
virtual void write(const std::string output_dir, const std::string output_file, const std::vector< double > xx, const std::vector< double > yy, const std::vector< double > parameters)
write the model at xx, yy for given parameters
void set_inputs(std::shared_ptr< void > inputs)
set the model inputs
virtual void write_at_bestfit(const std::string output_dir, const std::string output_file, const std::vector< double > xx)
write the model at xx with best-fit parameters obtained from likelihood maximization
virtual void stats_from_chains(const std::vector< double > xx, std::vector< double > &median_model, std::vector< double > &low_model, std::vector< double > &up_model, const int start=0, const int thin=1)
compute the median and percentiles of the model from MCMC chains
virtual ~Model()=default
default destructor
void set_function(const std::vector< double >(*function)(const std::vector< double > xx, std::vector< double > &val))
set the model function, for Model1D
std::shared_ptr< void > inputs()
return the model inputs
Dim dimension() const
return the model dimension
virtual void stats_from_chains(const std::vector< double > xx, const std::vector< double > yy, std::vector< std::vector< double >> &median_model, std::vector< std::vector< double >> &low_model, std::vector< std::vector< double >> &up_model, const int start=0, const int thin=1)
compute the median and percentiles of the model from MCMC chains
void set_function(const model_function_1D function)
set the model function, for Model1D
Model(const int nparameters, std::vector< ParameterType > parameterTypes, std::vector< std::string > parameterNames, const std::shared_ptr< void > inputs)
constructor
void stats_from_chains(const std::vector< std::vector< double >> xx, std::vector< std::vector< double >> &median_model, std::vector< std::vector< double >> &low_model, std::vector< std::vector< double >> &up_model, const int start=0, const int thin=1)
compute the median and percentiles of the model from MCMC chains
std::function< std::vector< std::vector< double > >std::vector< double >, std::vector< double >, std::shared_ptr< void >, std::vector< double > &)> model_function_2D
2D function: the inputs are the values at which the function is computed, a pointer to a set of data ...
std::function< std::vector< std::vector< double > >std::vector< std::vector< double > >, std::shared_ptr< void >, std::vector< double > &)> model_function_generic
generic function: the inputs are the values at which the function is computed, a pointer to a set of ...
std::function< std::vector< double >std::vector< double >, std::shared_ptr< void >, std::vector< double > &)> model_function_1D
1D function: the inputs are a vector of values at which the function is computed, a pointer to a set ...
The global namespace of the CosmoBolognaLib
int ErrorCBL(const std::string msg, const std::string functionCBL, const std::string fileCBL, const cbl::glob::ExitCode exitCode=cbl::glob::ExitCode::_error_)
throw an exception: it is used for handling exceptions inside the CosmoBolognaLib
Dim
the dimension, used e.g. for pair and triplet vectors