-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Hidden Markov processes. -- -- Hidden Markov processes. @package markov-processes @version 0.0.2 module Data.Distribution type Distribution a = [(a, Probability)] type Probability = Rational probability :: Eq a => a -> Distribution a -> Probability ( a -> Distribution a -> Probability (?>) :: Eq a => Distribution a -> a -> Probability choose :: RandomGen g => g -> Distribution a -> a (<~~) :: RandomGen g => Distribution a -> g -> a chooseMany :: RandomGen g => g -> Distribution a -> [a] module AI.Markov.HMM data HMM state symbol HMM :: [state] -> [symbol] -> Distribution state -> (state -> Distribution state) -> (state -> Distribution symbol) -> HMM state symbol states :: HMM state symbol -> [state] symbols :: HMM state symbol -> [symbol] start :: HMM state symbol -> Distribution state transition :: HMM state symbol -> state -> Distribution state emission :: HMM state symbol -> state -> Distribution symbol observe :: RandomGen seed => seed -> HMM state symbol -> [symbol] evaluate :: (Memoizable state, Memoizable symbol, Eq state, Eq symbol, Enum state, Bounded state) => HMM state symbol -> [symbol] -> Probability inspect :: (Memoizable state, Memoizable symbol, Eq state, Eq symbol, Enum state, Bounded state) => HMM state symbol -> [symbol] -> [state] sequenceP :: Eq state => HMM state symbol -> [state] -> Probability instance Memoizable a => Memoizable (Ratio a) instance (Memoizable state, Memoizable symbol, Eq state, Eq symbol, Enum state, Bounded state) => Memoizable (HMM state symbol)