|
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.