M   (c) 2016 Jared TobinMITJared Tobin <jared@jtobin.ca>unstableghcNone2A type-specialized alias for Data.Vector.fromList.5Use this to create ensembles from lists of particles.9A type-specialized alias for Data.Vector.Unboxed.fromList3Use this to create particles from lists of doubles.(c) 2016 Jared TobinMITJared Tobin <jared@jtobin.ca>unstableghcNone!")An ensemble is a collection of particles.The Markov chain we're interested in will run over the space of ensembles, so you'll want to build an ensemble out of a reasonable number of particles to kick off the chain.(You can create an ensemble by using the ensemble6 helper function, or just use Data.Vector.fromList.8A particle is an n-dimensional point in Euclidean space.'You can create a particle by using the particle> helper function, or just use Data.Vector.Unboxed.fromList. Render a Chain as a text value. The  M transition operator for driving a Markov chain over a space of ensembles. Trace n8 iterations of a Markov chain and stream them to stdout.Note that the Markov chain is defined over the space of ensembles, so you'll need to provide an ensemble of particles for the start location.import Numeric.MCMC.Flat#import Data.Vector.Unboxed (toList):{Hlet rosenbrock xs = negate (5 *(x1 - x0 ^ 2) ^ 2 + 0.05 * (1 - x0) ^ 2)& where [x0, x1] = toList xs:}:{let origin = ensemble [!particle [negate 1.0, negate 1.0], particle [negate 1.0, 1.0], particle [1.0, negate 1.0], particle [1.0, 1.0]]:}5withSystemRandom . asGenIO $ mcmc 2 origin rosenbrock -1.0,-1.0-1.0,1.01.0,-1.0%0.7049046915549257,0.7049046915549257%-0.843493377618159,-0.843493377618159&-1.1655594505975082,1.1655594505975082&0.5466534497342876,-0.9615123448709006%0.7049046915549257,0.7049046915549257                !"&flat-mcmc-1.4.0-JRj9znJkwRP9KX6kjASiB8Numeric.MCMC.FlatData.Vector.Extended*mwc-random-0.13.4.0-IrRYM0eHtacIO2LX1EGqKTSystem.Random.MWCasGenIOcreatewithSystemRandomcreateSystemRandomensembleparticleEnsembleParticleChainflatmcmcrender chainTarget chainPositionrenderParticlerenderEnsemble symmetricstretch acceptProbmoveexecutechain parMapChunk'mcmc-types-1.0.2-1cuznt4Xjsr90xvJIUDzN3Data.Sampling.Types TransitionTargetlTargetglTarget