Doxygen 1.9.1
Toolkit for Adaptive Stochastic Modeling and Non-Intrusive ApproximatioN: Tasmanian v8.2 (development)
DREAM: DiffeRential Evolution Adaptive Metropolis
Collaboration diagram for DREAM: DiffeRential Evolution Adaptive Metropolis:

Modules

 TasmanianDREAM State
 
 DREAM Sampling Templates
 
 Enumerated types
 
 Miscellaneous utility templates, borrowed from TasGrid.
 
 Probability distributions, analytic formulas and sampling algorithms
 
 Likelihood definitions
 

Files

file  TasmanianDREAM.hpp
 DiffeRential Evolution Adaptive Metropolis methods.
 
file  tsgDreamState.hpp
 The container class holding the DREAM history.
 
file  tsgDreamSample.hpp
 Core sampling templates.
 
file  tsgDreamEnumerates.hpp
 The enumerated types used in the DREAM module.
 
file  tsgDreamCoreRandom.hpp
 Core random sampling methods.
 
file  tsgDreamCorePDF.hpp
 Gives the unscaled formulas for several probability distributions.
 
file  tsgDreamLikelihoodCore.hpp
 The interface mother-class for the likelihood classes.
 
file  tsgDreamLikelyGaussian.hpp
 Several likelihood implementations based on Gaussian noise.
 

Detailed Description

DREAM
The DiffeRential Evolution Adaptive Metropolis is a method to draw samples from an arbitrary probability distribution defined by an arbitrary non-negative function (not necessarily normalized to integrate to 1). In the Tasmanian DREAM module, the samples (and the history) are stored in a TasDREAM::TasmanianDREAM state object which also defines the number of samples and the number of dimensions of the input space. The sampling is performed by the TasDREAM::SampleDREAM() template that takes an initialized state and several callable objects that describe the geometry of the domain and the parameters of the sampling, e.g., number of iterations.
Bayesian Inference
One of the most common applications for DREAM is in the context of Bayesian inference, where the probability distribution is comprised of a model, likelihood and prior. The three components can be combined together with the TasDREAM::posterior() template, which returns a callable object that represents the probability distribution.
Examples
See the included examples.