Doxygen
1.9.1
|
Encapsulates the Tasmanian DREAM module. More...
Classes | |
class | TasmanianDREAM |
Contains the current state and the history of the DREAM chains. More... | |
class | TasmanianLikelihood |
Interface for the likelihood classes. More... | |
class | LikelihoodGaussIsotropic |
Implements likelihood under the assumption of isotropic white noise. More... | |
class | LikelihoodGaussAnisotropic |
Implements likelihood under the assumption of anisotropic white noise. More... | |
class | DistributedPosterior |
Class that enables distributed DREAM sampling with MPI. More... | |
Typedefs | |
using | DreamDomain = std::function< bool(std::vector< double > const &x)> |
Generic test function whether a sample belongs in the domain. More... | |
using | DreamPDF = std::function< void(const std::vector< double > &candidates, std::vector< double > &values)> |
Generic probability distribution used by Tasmanian. More... | |
using | DreamModel = std::function< void(const std::vector< double > &candidates, std::vector< double > &outputs)> |
Generic model signature used by Tasmanian. More... | |
using | DreamLikelihood = std::function< void(TypeSamplingForm form, const std::vector< double > &model_outputs, std::vector< double > &likely)> |
Generic likelihood signature used by Tasmanian. More... | |
using | DreamPrior = std::function< void(TypeSamplingForm form, const std::vector< double > &candidates, std::vector< double > &values)> |
Generic signature for the prior distributions used by Tasmanian. More... | |
using | DreamMergedLikelyModel = std::function< void(const std::vector< double > &candidates, std::vector< double > &values)> |
Generic signature for a combination of a likelihood and a model. More... | |
Enumerations | |
enum | TypeSamplingForm { regform , logform } |
Describes whether sampling should be done with the regular or logarithm form of the probability density. More... | |
enum | TypeDistribution { dist_uniform , dist_gaussian , dist_exponential , dist_beta , dist_gamma , dist_none , dist_null } |
Indicates a specific probability distribution for the associated function. More... | |
Functions | |
DreamDomain | hypercube (std::vector< double > const &lower, std::vector< double > const &upper) |
Make a lambda that matches the inside signature in SampleDREAM(), test if the vector x is in the hyperbube described by lower and upper. | |
void | no_update (std::vector< double > &) |
Dummy function that does not make any changes to the vector as default for the independent_update() in SampleDREAM(). More... | |
double | const_one () |
Dummy function that returns 1.0, used as default for the differential_update() in SampleDREAM(). More... | |
template<int weight_percent> | |
double | const_percent () |
Template that returns a constant based on the percentage, i.e., weight_percent / 100.0. More... | |
void | uniform_prior (TypeSamplingForm, const std::vector< double > &, std::vector< double > &values) |
Uniform prior distribution for both regular and log form. More... | |
template<TypeSamplingForm form = regform> | |
DreamPDF | posterior (DreamModel model, DreamLikelihood likelihood, DreamPrior prior) |
Combines the three components of a Bayesian posterior into a single distribution. More... | |
template<TypeSamplingForm form = regform> | |
DreamPDF | posterior (DreamMergedLikelyModel likelihood_model, DreamPrior prior) |
Overload where the model and likelihood are combined into a single call. More... | |
template<TypeSamplingForm form = regform> | |
void | SampleDREAM (int num_burnup, int num_collect, DreamPDF probability_distribution, DreamDomain inside, TasmanianDREAM &state, std::function< void(std::vector< double > &x)> independent_update=no_update, std::function< double(void)> differential_update=const_one, std::function< double(void)> get_random01=tsgCoreUniform01) |
Core template for the sampling algorithm. More... | |
template<TypeSamplingForm form = regform> | |
void | SampleDREAM (int num_burnup, int num_collect, DreamPDF probability_distribution, DreamDomain inside, TasmanianDREAM &state, TypeDistribution dist, double magnitude, std::function< double(void)> differential_update=const_one, std::function< double(void)> get_random01=tsgCoreUniform01) |
Overload of SampleDREAM() assuming independent update from a list of internally implemented options. More... | |
double | tsgCoreUniform01 () |
Generates random numbers uniformly distributed in (0, 1), uses the rand() command. | |
void | applyUniformUpdate (std::vector< double > &x, double magnitude, std::function< double(void)> get_random01=tsgCoreUniform01) |
Add a correction to every entry in x, use uniform samples over (-magnitude, magnitude). More... | |
void | applyGaussianUpdate (std::vector< double > &x, double magnitude, std::function< double(void)> get_random01=tsgCoreUniform01) |
Add a correction to every entry in x, sue Gaussian distribution with zero mean and standard deviation equal to magnitude. More... | |
void | genUniformSamples (const std::vector< double > &lower, const std::vector< double > &upper, int num_samples, std::vector< double > &x, std::function< double(void)> get_random01=tsgCoreUniform01) |
Generate uniform random samples in the hypercube defined by lower and upper limits. More... | |
std::vector< double > | genUniformSamples (const std::vector< double > &lower, const std::vector< double > &upper, int num_samples, std::function< double(void)> get_random01=tsgCoreUniform01) |
Overload that returns the vector. | |
void | genGaussianSamples (const std::vector< double > &means, const std::vector< double > &deviations, int num_samples, std::vector< double > &x, std::function< double(void)> get_random01=tsgCoreUniform01) |
Generate standard normal samples with given means and standard deviations. More... | |
std::vector< double > | genGaussianSamples (const std::vector< double > &means, const std::vector< double > &deviations, int num_samples, std::function< double(void)> get_random01=tsgCoreUniform01) |
Overload that returns the vector. | |
template<TypeDistribution distribution, TypeSamplingForm form = regform, typename... Params> | |
double | getDensity (double x, Params... params) |
Returns the unscaled probability density of distribution (defined by params) at the point x. More... | |
template<class Likelihood > | |
int | MPILikelihoodSend (Likelihood const &likely, int destination, int tag, MPI_Comm comm, int outputs_begin=0, int outputs_end=-1) |
Send a likelihood to another process in the MPI comm. More... | |
template<class Likelihood > | |
int | MPILikelihoodRecv (Likelihood &likely, int source, int tag, MPI_Comm comm, MPI_Status *status=MPI_STATUS_IGNORE) |
Receive a likelihood from another process in the MPI comm. More... | |
template<class Likelihood > | |
int | MPILikelihoodScatter (Likelihood const &source, Likelihood &destination, int root, int tag, MPI_Comm comm) |
Split the likelihood across the comm where each rank receives an equal portion of the total outputs. More... | |
Encapsulates the Tasmanian DREAM module.
DREAM related classes and methods sit under the TasDREAM namespace.