| 
            
                Doxygen
                 1.9.1
     | 
Encapsulates the Tasmanian DREAM module. More...
| Namespaces | |
| IO | |
| Similar to TasGrid::IO this holds conversion methods between enums and int/string types. | |
| Utils | |
| 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 () | 
| Default random sampler, using rand() divided by RAND_MAX.  More... | |
| 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.