hmm-hmatrix-0.0.2: Hidden Markov Models using HMatrix primitives

Safe HaskellNone
LanguageHaskell2010

Math.HiddenMarkovModel.Distribution

Documentation

type family Emission distr Source

Instances

type Emission (Gaussian a) = Vector a Source 
type Emission (Discrete prob symbol) = symbol Source 

type family Probability distr Source

Instances

type Probability (Gaussian a) = a Source 
type Probability (Discrete prob symbol) = prob Source 

type family Trained distr Source

Instances

type Trained (Gaussian a) = GaussianTrained a Source 
type Trained (Discrete prob symbol) = DiscreteTrained prob symbol Source 

class (Container Vector (Probability distr), Product (Probability distr)) => Info distr where Source

Methods

numberOfStates :: distr -> Int Source

Instances

Field a => Info (Gaussian a) Source 
(Container Vector prob, Product prob, Ord symbol) => Info (Discrete prob symbol) Source 

class (Container Vector (Probability distr), Product (Probability distr)) => Generate distr where Source

Methods

generate :: (RandomGen g, Probability distr ~ prob, Emission distr ~ emission) => distr -> State -> State g emission Source

Instances

Field a => Generate (Gaussian a) Source 
(Container Vector prob, Product prob, Ord symbol, Ord prob, Random prob) => Generate (Discrete prob symbol) Source 

class (Container Vector (Probability distr), Product (Probability distr)) => EmissionProb distr where Source

Minimal complete definition

emissionProb

Methods

emissionProb :: distr -> Emission distr -> Vector (Probability distr) Source

emissionStateProb :: distr -> Emission distr -> State -> Probability distr Source

Instances

(Numeric a, Field a) => EmissionProb (Gaussian a) Source 
(Container Vector prob, Product prob, Ord symbol) => EmissionProb (Discrete prob symbol) Source 

class (EmissionProb (Distribution tdistr), Trained (Distribution tdistr) ~ tdistr) => Estimate tdistr where Source

Associated Types

type Distribution tdistr Source

Methods

accumulateEmissions :: (Distribution tdistr ~ distr, Probability distr ~ prob) => [[(Emission distr, prob)]] -> tdistr Source

combine :: tdistr -> tdistr -> tdistr Source

normalize :: (Distribution tdistr ~ distr) => tdistr -> distr Source

Instances

(Numeric a, Field a) => Estimate (GaussianTrained a) Source 
(Container Vector prob, Product prob, Ord symbol) => Estimate (DiscreteTrained prob symbol) Source 

newtype Discrete prob symbol Source

Constructors

Discrete (Map symbol (Vector prob)) 

Instances

(Show prob, Show symbol, Storable prob) => Show (Discrete prob symbol) Source 
(NFData prob, NFData symbol) => NFData (Discrete prob symbol) Source 
(Field prob, Show prob, Read prob, CSVSymbol symbol) => CSV (Discrete prob symbol) Source 
(Container Vector prob, Product prob, Ord symbol) => EmissionProb (Discrete prob symbol) Source 
(Container Vector prob, Product prob, Ord symbol, Ord prob, Random prob) => Generate (Discrete prob symbol) Source 
(Container Vector prob, Product prob, Ord symbol) => Info (Discrete prob symbol) Source 
type Trained (Discrete prob symbol) = DiscreteTrained prob symbol Source 
type Emission (Discrete prob symbol) = symbol Source 
type Probability (Discrete prob symbol) = prob Source 

newtype DiscreteTrained prob symbol Source

Constructors

DiscreteTrained (Map symbol (Vector prob)) 

Instances

(Show prob, Show symbol, Storable prob) => Show (DiscreteTrained prob symbol) Source 
(NFData prob, NFData symbol) => NFData (DiscreteTrained prob symbol) Source 
(Container Vector prob, Product prob, Ord symbol) => Estimate (DiscreteTrained prob symbol) Source 
type Distribution (DiscreteTrained prob symbol) = Discrete prob symbol Source 

newtype Gaussian a Source

Constructors

Gaussian (Array State (Vector a, Matrix a, a)) 

gaussian :: Field prob => [(Vector prob, Matrix prob)] -> Gaussian prob Source

class CSV distr where Source

Methods

toCells :: distr -> [[String]] Source

parseCells :: Int -> CSVParser distr Source

Instances

(Field a, Eq a, Show a, Read a) => CSV (Gaussian a) Source 
(Field prob, Show prob, Read prob, CSVSymbol symbol) => CSV (Discrete prob symbol) Source 

class Ord symbol => CSVSymbol symbol where Source

Methods

cellFromSymbol :: symbol -> String Source

symbolFromCell :: String -> Maybe symbol Source

Instances

CSVSymbol Char Source 
CSVSymbol Int Source 
CSVSymbol Color Source

Using show and read is not always a good choice since they must format and parse Haskell expressions which is not of much use to the outside world.