learning-hmm 0.3.1.2 → 0.3.1.3
raw patch · 4 files changed
+8/−5 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGES.md +3/−0
- learning-hmm.cabal +1/−1
- src/Learning/HMM/Internal.hs +2/−2
- src/Learning/IOHMM/Internal.hs +2/−2
CHANGES.md view
@@ -1,6 +1,9 @@ Revision history for Haskell package learning-hmm === +## Version 0.3.1.3+- Bug fix release+ ## Version 0.3.1.2 - Default the limit of Baum-Welch iteration to 10000 (in `baumWelch'`)
learning-hmm.cabal view
@@ -1,5 +1,5 @@ name: learning-hmm-version: 0.3.1.2+version: 0.3.1.3 stability: experimental synopsis: Yet another library for hidden Markov models
src/Learning/HMM/Internal.hs view
@@ -21,7 +21,7 @@ import qualified Data.Map.Strict as M ( findWithDefault ) import Data.Random.Distribution.Simplex ( stdSimplex ) import Data.Random.RVar ( RVar )-import qualified Data.Vector as V ( Vector, filter, foldl1', map, unsafeFreeze, unsafeIndex, unsafeTail, zip, zipWith3 )+import qualified Data.Vector as V ( Vector, filter, foldl', foldl1', map, unsafeFreeze, unsafeIndex, unsafeTail, zip, zipWith3 ) import qualified Data.Vector.Generic as G ( convert ) import qualified Data.Vector.Generic.Extra as G ( frequencies ) import qualified Data.Vector.Mutable as MV ( unsafeNew, unsafeRead, unsafeWrite )@@ -175,7 +175,7 @@ ns = ds H.#> H.konst 1 nStates -- numerators in H.diag (H.konst 1 nStates / ns) H.<> ds phi' = let gs' o = V.map snd $ V.filter ((== o) . fst) $ V.zip (G.convert xs) gammas- ds = V.foldl1' (+) . gs' -- denominators+ ds = V.foldl' (+) 0 . gs' -- denominators ns = V.foldl1' (+) gammas -- numerators in H.fromRows $ map (\o -> ds o / ns) [0..(nOutputs - 1)]
src/Learning/IOHMM/Internal.hs view
@@ -21,7 +21,7 @@ import qualified Data.Map.Strict as M ( findWithDefault ) import Data.Random.Distribution.Simplex ( stdSimplex ) import Data.Random.RVar ( RVar )-import qualified Data.Vector as V ( Vector, filter, foldl1', generate, map, replicateM, unsafeFreeze, unsafeIndex , unsafeTail , zip, zipWith3 )+import qualified Data.Vector as V ( Vector, filter, foldl', foldl1', generate, map, replicateM, unsafeFreeze, unsafeIndex , unsafeTail , zip, zipWith3 ) import qualified Data.Vector.Generic as G ( convert ) import qualified Data.Vector.Generic.Extra as G ( frequencies ) import qualified Data.Vector.Mutable as MV ( unsafeNew, unsafeRead, unsafeWrite )@@ -184,7 +184,7 @@ ns i = ds i H.#> H.konst 1 nStates -- numerators in V.map (\i -> H.diag (H.konst 1 nStates / ns i) H.<> ds i) (V.generate nInputs id) phi' = let gs' o = V.map snd $ V.filter ((== o) . fst) $ V.zip (G.convert ys) gammas- ds = V.foldl1' (+) . gs' -- denominators+ ds = V.foldl' (+) 0 . gs' -- denominators ns = V.foldl1' (+) gammas -- numerators in H.fromRows $ map (\o -> ds o / ns) [0..(nOutputs - 1)]