mwc-probability-transition-0.1.0.0: A Markov stochastic transition operator with logging

Safe HaskellNone
LanguageHaskell2010

System.Random.MWC.Probability.Transition

Contents

Synopsis

Transition

data Transition message s m a Source #

A Markov transition kernel.

Instances

Functor m => Functor (Transition message s m) Source # 

Methods

fmap :: (a -> b) -> Transition message s m a -> Transition message s m b #

(<$) :: a -> Transition message s m b -> Transition message s m a #

mkTransition Source #

Arguments

:: Monad m 
=> (s -> Prob m t)

Random generation

-> (s -> t -> (a, s))

(Output, Next state)

-> (a -> s -> message)

Log message generation

-> Transition message s m a 

Construct a Transition from sampling, state transformation and logging functions.

NB: The three function arguments are used in the order in which they appear here:

  1. a random sample w :: t is produced, using the current state x :: s as input
  2. output z :: a and next state x' :: s are computed using w and x
  3. a logging message is constructed, using z and x' as arguments.

runTransition Source #

Arguments

:: Monad m 
=> Handler m message

Logging handler

-> Transition message s m a 
-> Int

Number of iterations

-> s

Initial state

-> Gen (PrimState m)

PRNG

-> m [(a, s)] 

Run a Transition for a number of steps, while logging each iteration.

Helper functions

withSeverity :: (t -> String) -> WithSeverity t -> String Source #

Render a logging message along with an annotation of its severity.

Re-exported from `logging-effect`

type Handler (m :: * -> *) message = message -> m () #

Handlers are mechanisms to interpret the meaning of logging as an action in the underlying monad. They are simply functions from log messages to m-actions.

data WithSeverity a :: * -> * #

Add "Severity" information to a log message. This is often used to convey how significant a log message is.

Constructors

WithSeverity 

Fields

Instances

Functor WithSeverity 

Methods

fmap :: (a -> b) -> WithSeverity a -> WithSeverity b #

(<$) :: a -> WithSeverity b -> WithSeverity a #

Foldable WithSeverity 

Methods

fold :: Monoid m => WithSeverity m -> m #

foldMap :: Monoid m => (a -> m) -> WithSeverity a -> m #

foldr :: (a -> b -> b) -> b -> WithSeverity a -> b #

foldr' :: (a -> b -> b) -> b -> WithSeverity a -> b #

foldl :: (b -> a -> b) -> b -> WithSeverity a -> b #

foldl' :: (b -> a -> b) -> b -> WithSeverity a -> b #

foldr1 :: (a -> a -> a) -> WithSeverity a -> a #

foldl1 :: (a -> a -> a) -> WithSeverity a -> a #

toList :: WithSeverity a -> [a] #

null :: WithSeverity a -> Bool #

length :: WithSeverity a -> Int #

elem :: Eq a => a -> WithSeverity a -> Bool #

maximum :: Ord a => WithSeverity a -> a #

minimum :: Ord a => WithSeverity a -> a #

sum :: Num a => WithSeverity a -> a #

product :: Num a => WithSeverity a -> a #

Traversable WithSeverity 

Methods

traverse :: Applicative f => (a -> f b) -> WithSeverity a -> f (WithSeverity b) #

sequenceA :: Applicative f => WithSeverity (f a) -> f (WithSeverity a) #

mapM :: Monad m => (a -> m b) -> WithSeverity a -> m (WithSeverity b) #

sequence :: Monad m => WithSeverity (m a) -> m (WithSeverity a) #

Eq a => Eq (WithSeverity a) 
Ord a => Ord (WithSeverity a) 
Read a => Read (WithSeverity a) 
Show a => Show (WithSeverity a) 

data Severity :: * #

Classes of severity for log messages. These have been chosen to match syslog severity levels

Constructors

Emergency

System is unusable. By syslog convention, this level should not be used by applications.

Alert

Should be corrected immediately.

Critical

Critical conditions.

Error

Error conditions.

Warning

May indicate that an error will occur if action is not taken.

Notice

Events that are unusual, but not error conditions.

Informational

Normal operational messages that require no action.

Debug

Information useful to developers for debugging the application.