declarative 0.1.0.1 → 0.2.1
raw patch · 3 files changed
+17/−6 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Numeric.MCMC: class Monad m => PrimMonad (m :: * -> *) where type family PrimState (m :: * -> *) :: *
+ Numeric.MCMC: data RealWorld :: *
Files
- declarative.cabal +12/−5
- lib/Numeric/MCMC.hs +4/−0
- test/Rosenbrock.hs +1/−1
declarative.cabal view
@@ -1,5 +1,5 @@ name: declarative-version: 0.1.0.1+version: 0.2.1 synopsis: DIY Markov Chains. homepage: http://github.com/jtobin/declarative license: MIT@@ -10,12 +10,19 @@ build-type: Simple cabal-version: >=1.10 description:- DIY Markov Chains.+ This package presents a simple combinator language for Markov transition+ operators that are useful in MCMC. .- Build composite Markov transition operators from existing ones for fun and- profit.+ Any transition operators sharing the same stationary distribution and obeying+ the Markov and reversibility properties can be combined in a couple of ways,+ such that the resulting operator preserves the stationary distribution and+ desirable properties amenable for MCMC. .- A useful strategy is to hedge one's sampling risk by occasionally+ We can deterministically concatenate operators end-to-end, or sample from+ a collection of them according to some probability distribution. See+ <http://www.stat.umn.edu/geyer/f05/8931/n1998.pdf Geyer, 2005> for details.+ .+ A useful strategy is to hedge one's 'sampling risk' by occasionally interleaving a computationally-expensive transition (such as a gradient-based algorithm like Hamiltonian Monte Carlo or NUTS) with cheap Metropolis transitions.
lib/Numeric/MCMC.hs view
@@ -80,6 +80,10 @@ , MWC.createSystemRandom , MWC.withSystemRandom , MWC.asGenIO++ , PrimMonad+ , PrimState+ , RealWorld ) where import Control.Lens hiding (index)
test/Rosenbrock.hs view
@@ -17,5 +17,5 @@ (sampleT (slice 2.0) (slice 3.0)) main :: IO ()-main = withSystemRandom . asGenIO $ mcmc 10000 [0, 0] transition rosenbrock+main = withSystemRandom . asGenIO $ mcmc 100 [0, 0] (slice 1.0) rosenbrock