hsignal 0.1.3.2 → 0.1.3.3
raw patch · 5 files changed
+20/−16 lines, 5 filesdep ~hmatrix-gsl-statsdep ~hstatisticsdep ~mtlPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: hmatrix-gsl-stats, hstatistics, mtl
API changes (from Hackage documentation)
- Numeric.Signal: analytic_power :: (Filterable a) => Vector (Complex Double) -> Vector a
+ Numeric.Signal: analytic_power :: Filterable a => Vector (Complex Double) -> Vector a
- Numeric.Signal: convolve :: (Convolvable a) => a -> a -> a
+ Numeric.Signal: convolve :: Convolvable a => a -> a -> a
- Numeric.Signal: deriv :: (Filterable a) => Vector a -> Vector a
+ Numeric.Signal: deriv :: Filterable a => Vector a -> Vector a
- Numeric.Signal: downsample :: (Filterable a) => Int -> Vector a -> Vector a
+ Numeric.Signal: downsample :: Filterable a => Int -> Vector a -> Vector a
- Numeric.Signal: filter :: (Filterable a) => Vector a -> Vector a -> Int -> Vector a -> Vector a
+ Numeric.Signal: filter :: Filterable a => Vector a -> Vector a -> Int -> Vector a -> Vector a
- Numeric.Signal: hamming :: (Filterable a) => Int -> Vector a
+ Numeric.Signal: hamming :: Filterable a => Int -> Vector a
- Numeric.Signal: resize :: (Filterable a) => Int -> Vector a -> Vector a
+ Numeric.Signal: resize :: Filterable a => Int -> Vector a -> Vector a
- Numeric.Signal: unwrap :: (Filterable a) => Vector a -> Vector a
+ Numeric.Signal: unwrap :: Filterable a => Vector a -> Vector a
- Numeric.Signal.Multichannel: createMultichannel :: (Storable a) => Int -> Int -> [Vector a] -> Multichannel a
+ Numeric.Signal.Multichannel: createMultichannel :: Storable a => Int -> Int -> [Vector a] -> Multichannel a
- Numeric.Signal.Multichannel: mapConcurrently :: (Storable b) => (Vector a -> Vector b) -> Multichannel a -> Multichannel b
+ Numeric.Signal.Multichannel: mapConcurrently :: Storable b => (Vector a -> Vector b) -> Multichannel a -> Multichannel b
- Numeric.Signal.Multichannel: slice :: (Storable a) => Int -> Int -> Multichannel a -> Multichannel a
+ Numeric.Signal.Multichannel: slice :: Storable a => Int -> Int -> Multichannel a -> Multichannel a
- Numeric.Signal.Multichannel: toMatrix :: (Element a) => Multichannel a -> Matrix a
+ Numeric.Signal.Multichannel: toMatrix :: Element a => Multichannel a -> Matrix a
Files
- CHANGES +3/−0
- hsignal.cabal +6/−5
- lib/Numeric/Signal/EEG.hs +0/−1
- lib/Numeric/Signal/EEG/BDF.hs +0/−1
- lib/Numeric/Signal/Multichannel.hs +11/−9
CHANGES view
@@ -57,3 +57,6 @@ 0.1.3.2: remove unicode symbols++0.1.3.3:+ updated to reflect change in mtl > 2
hsignal.cabal view
@@ -1,7 +1,8 @@ Name: hsignal-Version: 0.1.3.2+Version: 0.1.3.3 License: BSD3 License-file: LICENSE+Copyright: (c) A.V.H. McPhail 2010, 2011 Author: Vivian McPhail Maintainer: haskell.vivian.mcphail <at> gmail <dot> com Stability: provisional@@ -17,7 +18,7 @@ . Feature requests, suggestions, and bug fixes welcome. Category: Math-tested-with: GHC ==6.12.1+tested-with: GHC ==7.0.1 cabal-version: >=1.8 @@ -33,12 +34,12 @@ library Build-Depends: base >= 4 && < 5,- mtl, + mtl > 2, array, bytestring, storable-complex, binary, hmatrix >= 0.10.0.0,- hmatrix-gsl-stats >= 0.1.2.6,- hstatistics >= 0.2.2.5+ hmatrix-gsl-stats >= 0.1.2.9,+ hstatistics >= 0.2.2.7 Extensions: ForeignFunctionInterface
lib/Numeric/Signal/EEG.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -fglasgow-exts #-} ----------------------------------------------------------------------------- -- | -- Module : Numeric.Signal.EEG
lib/Numeric/Signal/EEG/BDF.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -fglasgow-exts #-} ----------------------------------------------------------------------------- -- | -- Module : Numeric.Signal.EEG.BDF
lib/Numeric/Signal/Multichannel.hs view
@@ -1,5 +1,7 @@-{-# OPTIONS_GHC -fglasgow-exts #-}-{-# OPTIONS_GHC -XUndecidableInstances #-}+{-# LANGUAGE UndecidableInstances,+ FlexibleContexts,+ TypeFamilies,+ ScopedTypeVariables #-} ----------------------------------------------------------------------------- -- | -- Module : Numeric.Signal.Multichannel@@ -38,6 +40,8 @@ import qualified Data.Array.IArray as I import Data.Ix +--import Data.Word+ import Control.Concurrent --import Control.Concurrent.MVar @@ -108,9 +112,7 @@ put $! fmap convert d where convert v = let (mi,ma) = (minElement v,maxElement v) v' = mapVector (\x -> round $ (x - mi)/(ma - mi) * (fromIntegral (maxBound :: Word32))) v- in (mi,ma,(v' :: Vector Word32)) --+ in (mi,ma,v' :: Vector Word32) get = do s <- get@@ -119,9 +121,9 @@ l <- get de <- get f <- get- d <- (get :: Get (I.Array Int (a,a,Vector Word32)))+ (d :: I.Array Int (a,a,Vector Word32)) <- get return $! (MC s p c l de f (seq d (fmap convert) d))- where convert (mi,ma,v) = mapVector (\x -> ((fromIntegral x) :: a) / (fromIntegral (maxBound :: Word32)) * (ma - mi) + mi) v+ where convert (mi,ma,v) = mapVector (\x -> ((fromIntegral x)) / (fromIntegral (maxBound :: Word32)) * (ma - mi) + mi) v ----------------------------------------------------------------------------- @@ -235,7 +237,7 @@ -- | filter the data with the given passband-filter :: (S.Filterable a, Double ~ DoubleOf a, Container Vector (Complex a), Convert (Complex a)) ⇒ +filter :: (S.Filterable a, Double ~ DoubleOf a, Container Vector (Complex a), Convert (Complex a)) => (Int,Int) -> Multichannel a -> Multichannel a filter pb m = let m' = mapConcurrently (S.broadband_filter (_sampling_rate m) pb) m in m' { _filtered = Just pb }@@ -254,7 +256,7 @@ ----------------------------------------------------------------------------- -- | calculate the mutual information of the phase between pairs of channels (fills upper half of matrix)-mi_phase :: (S.Filterable a, Double ~ DoubleOf a) ⇒+mi_phase :: (S.Filterable a, Double ~ DoubleOf a) => Multichannel a -- ^ input data -> Matrix Double mi_phase m = let d = fmap double $ _data m