hmm-lapack-0.3.0.3: Hidden Markov Models using LAPACK primitives

Safe HaskellNone

Math.HiddenMarkovModel.Distribution

Documentation

type family Emission distr Source

type family Probability distr Source

type family StateShape distr Source

class Real (Probability distr) => Info distr whereSource

Methods

statesShape :: distr -> StateShape distrSource

Instances

(Indexed stateSh, Eq stateSh, Real a) => Info (Gaussian emiSh stateSh a) 
(C sh, Real prob, Ord symbol) => Info (Discrete symbol sh prob) 

class Real (Probability distr) => Generate distr whereSource

Methods

generate :: (RandomGen g, Emission distr ~ emission, StateShape distr ~ sh) => distr -> Index sh -> State g emissionSource

Instances

(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => Generate (Gaussian emiSh stateSh a) 
(Indexed sh, Real prob, Ord symbol, Ord prob, Random prob) => Generate (Discrete symbol sh prob) 

class (Indexed (StateShape distr), Real (Probability distr)) => EmissionProb distr whereSource

Methods

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

emissionStateProb :: distr -> Emission distr -> Index (StateShape distr) -> Probability distrSource

Instances

(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => EmissionProb (Gaussian emiSh stateSh a) 
(Indexed sh, Real prob, Ord symbol) => EmissionProb (Discrete symbol sh prob) 

class (Distribution tdistr ~ distr, Trained distr ~ tdistr, EmissionProb distr) => Estimate tdistr distr whereSource

Associated Types

type Distribution tdistr Source

type Trained distr Source

Methods

accumulateEmissions :: (Probability distr ~ prob, StateShape distr ~ sh) => Array sh [(Emission distr, prob)] -> tdistrSource

combine :: tdistr -> tdistr -> tdistrSource

normalize :: tdistr -> distrSource

Instances

(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => Estimate (GaussianTrained emiSh stateSh a) (Gaussian emiSh stateSh a) 
(Indexed sh, Eq sh, Real prob, Ord symbol) => Estimate (DiscreteTrained symbol sh prob) (Discrete symbol sh prob) 

newtype Discrete symbol sh prob Source

Constructors

Discrete (Map symbol (Vector sh prob)) 

Instances

(Show symbol, Show sh, Show prob, Storable prob, C sh) => Show (Discrete symbol sh prob) 
(NFData sh, NFData prob, NFData symbol) => NFData (Discrete symbol sh prob) 
(FormatArray sh, Real prob, Format symbol) => Format (Discrete symbol sh prob) 
(C sh, Real prob, Show prob, Read prob, CSVSymbol symbol) => FromCSV (Discrete symbol sh prob) 
(C sh, Real prob, Show prob, Read prob, CSVSymbol symbol) => ToCSV (Discrete symbol sh prob) 
(Indexed sh, Real prob, Ord symbol) => EmissionProb (Discrete symbol sh prob) 
(Indexed sh, Real prob, Ord symbol, Ord prob, Random prob) => Generate (Discrete symbol sh prob) 
(C sh, Real prob, Ord symbol) => Info (Discrete symbol sh prob) 
(Indexed sh, Eq sh, Real prob, Ord symbol) => Estimate (DiscreteTrained symbol sh prob) (Discrete symbol sh prob) 

newtype DiscreteTrained symbol sh prob Source

Constructors

DiscreteTrained (Map symbol (Vector sh prob)) 

Instances

(Show symbol, Show sh, Show prob, Storable prob, C sh) => Show (DiscreteTrained symbol sh prob) 
(NFData sh, NFData prob, NFData symbol) => NFData (DiscreteTrained symbol sh prob) 
(Indexed sh, Eq sh, Real prob, Ord symbol) => Estimate (DiscreteTrained symbol sh prob) (Discrete symbol sh prob) 

newtype Gaussian emiSh stateSh a Source

Constructors

Gaussian (Array stateSh (Vector emiSh a, UpperTriangular emiSh a, a)) 

Instances

(Show emiSh, Show stateSh, Show a, Storable a, C emiSh, C stateSh) => Show (Gaussian emiSh stateSh a) 
(NFData emiSh, NFData stateSh, C stateSh, NFData a, Storable a) => NFData (Gaussian emiSh stateSh a) 
(FormatArray emiSh, C stateSh, Real a) => Format (Gaussian emiSh stateSh a) 
(~ * emiSh ZeroInt, Indexed stateSh, Real a, Eq a, Show a, Read a) => FromCSV (Gaussian emiSh stateSh a) 
(Indexed emiSh, Indexed stateSh, Real a, Eq a, Show a, Read a) => ToCSV (Gaussian emiSh stateSh a) 
(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => EmissionProb (Gaussian emiSh stateSh a) 
(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => Generate (Gaussian emiSh stateSh a) 
(Indexed stateSh, Eq stateSh, Real a) => Info (Gaussian emiSh stateSh a) 
(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => Estimate (GaussianTrained emiSh stateSh a) (Gaussian emiSh stateSh a) 

newtype GaussianTrained emiSh stateSh a Source

Constructors

GaussianTrained (Array stateSh (Maybe (Vector emiSh a, HermitianMatrix emiSh a, a))) 

Instances

(Show emiSh, Show stateSh, Show a, Storable a, C emiSh, C stateSh) => Show (GaussianTrained emiSh stateSh a) 
(NFData emiSh, NFData stateSh, C stateSh, NFData a, Storable a) => NFData (GaussianTrained emiSh stateSh a) 
(C emiSh, Eq emiSh, Indexed stateSh, Eq stateSh, Real a) => Estimate (GaussianTrained emiSh stateSh a) (Gaussian emiSh stateSh a) 

gaussian :: (C emiSh, C stateSh, Real prob) => Array stateSh (Vector emiSh prob, HermitianMatrix emiSh prob) -> Gaussian emiSh stateSh probSource

class ToCSV distr whereSource

Methods

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

Instances

(Indexed emiSh, Indexed stateSh, Real a, Eq a, Show a, Read a) => ToCSV (Gaussian emiSh stateSh a) 
(C sh, Real prob, Show prob, Read prob, CSVSymbol symbol) => ToCSV (Discrete symbol sh prob) 

class FromCSV distr whereSource

Methods

parseCells :: StateShape distr -> CSVParser distrSource

Instances

(~ * emiSh ZeroInt, Indexed stateSh, Real a, Eq a, Show a, Read a) => FromCSV (Gaussian emiSh stateSh a) 
(C sh, Real prob, Show prob, Read prob, CSVSymbol symbol) => FromCSV (Discrete symbol sh prob) 

type CSVParser = StateT CSVResult (Exceptional String)Source

class Ord symbol => CSVSymbol symbol whereSource

Instances

CSVSymbol Char 
CSVSymbol Int 
CSVSymbol Color

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.