diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Numeric/Vector.hs | 52 |
1 files changed, 6 insertions, 46 deletions
diff --git a/lib/Numeric/Vector.hs b/lib/Numeric/Vector.hs index 5b72951..1717e7b 100644 --- a/lib/Numeric/Vector.hs +++ b/lib/Numeric/Vector.hs | |||
@@ -6,7 +6,7 @@ | |||
6 | ----------------------------------------------------------------------------- | 6 | ----------------------------------------------------------------------------- |
7 | -- | | 7 | -- | |
8 | -- Module : Numeric.Vector | 8 | -- Module : Numeric.Vector |
9 | -- Copyright : (c) Alberto Ruiz 2010 | 9 | -- Copyright : (c) Alberto Ruiz 2011 |
10 | -- License : GPL-style | 10 | -- License : GPL-style |
11 | -- | 11 | -- |
12 | -- Maintainer : Alberto Ruiz <aruiz@um.es> | 12 | -- Maintainer : Alberto Ruiz <aruiz@um.es> |
@@ -18,8 +18,7 @@ | |||
18 | -- | 18 | -- |
19 | ----------------------------------------------------------------------------- | 19 | ----------------------------------------------------------------------------- |
20 | 20 | ||
21 | module Numeric.Vector ( | 21 | module Numeric.Vector () where |
22 | ) where | ||
23 | 22 | ||
24 | import Numeric.GSL.Vector | 23 | import Numeric.GSL.Vector |
25 | import Numeric.Container | 24 | import Numeric.Container |
@@ -37,30 +36,19 @@ import Foreign(Storable) | |||
37 | instance (Show a, Storable a) => (Show (Vector a)) where | 36 | instance (Show a, Storable a) => (Show (Vector a)) where |
38 | show v = (show (dim v))++" |> " ++ show (toList v) | 37 | show v = (show (dim v))++" |> " ++ show (toList v) |
39 | 38 | ||
40 | #endif | 39 | instance Container Vector a => Eq (Vector a) where |
41 | 40 | (==) = equal | |
42 | #ifdef VECTOR | ||
43 | |||
44 | #if !MIN_VERSION_vector(0,8,0) | ||
45 | instance (Element a, Read a) => Read (Vector a) where | ||
46 | readsPrec _ s = [(fromList . read $ listnums, rest)] | ||
47 | where (thing,trest) = breakAt ']' s | ||
48 | (dims,listnums) = breakAt ' ' (dropWhile (==' ') thing) | ||
49 | rest = drop 31 trest | ||
50 | #endif | ||
51 | #else | ||
52 | 41 | ||
53 | instance (Element a, Read a) => Read (Vector a) where | 42 | instance (Element a, Read a) => Read (Vector a) where |
54 | readsPrec _ s = [((d |>) . read $ listnums, rest)] | 43 | readsPrec _ s = [((d |>) . read $ listnums, rest)] |
55 | where (thing,rest) = breakAt ']' s | 44 | where (thing,rest) = breakAt ']' s |
56 | (dims,listnums) = breakAt '>' thing | 45 | (dims,listnums) = breakAt '>' thing |
57 | d = read . init . fst . breakAt '|' $ dims | 46 | d = read . init . fst . breakAt '|' $ dims |
47 | breakAt c l = (a++[c],tail b) where | ||
48 | (a,b) = break (==c) l | ||
58 | 49 | ||
59 | #endif | 50 | #endif |
60 | 51 | ||
61 | breakAt c l = (a++[c],tail b) where | ||
62 | (a,b) = break (==c) l | ||
63 | |||
64 | 52 | ||
65 | ------------------------------------------------------------------ | 53 | ------------------------------------------------------------------ |
66 | 54 | ||
@@ -71,13 +59,6 @@ adaptScalar f1 f2 f3 x y | |||
71 | 59 | ||
72 | ------------------------------------------------------------------ | 60 | ------------------------------------------------------------------ |
73 | 61 | ||
74 | #ifndef VECTOR | ||
75 | |||
76 | instance Container Vector a => Eq (Vector a) where | ||
77 | (==) = equal | ||
78 | |||
79 | #endif | ||
80 | |||
81 | instance Num (Vector Float) where | 62 | instance Num (Vector Float) where |
82 | (+) = adaptScalar addConstant add (flip addConstant) | 63 | (+) = adaptScalar addConstant add (flip addConstant) |
83 | negate = scale (-1) | 64 | negate = scale (-1) |
@@ -202,24 +183,3 @@ instance Floating (Vector (Complex Float)) where | |||
202 | (**) = adaptScalar (vectorMapValQ PowSV) (vectorZipQ Pow) (flip (vectorMapValQ PowVS)) | 183 | (**) = adaptScalar (vectorMapValQ PowSV) (vectorZipQ Pow) (flip (vectorMapValQ PowVS)) |
203 | pi = fromList [pi] | 184 | pi = fromList [pi] |
204 | 185 | ||
205 | ----------------------------------------------------------- | ||
206 | |||
207 | |||
208 | -- instance (Storable a, Num (Vector a)) => Monoid (Vector a) where | ||
209 | -- mempty = 0 { idim = 0 } | ||
210 | -- mappend a b = mconcat [a,b] | ||
211 | -- mconcat = j . filter ((>0).dim) | ||
212 | -- where j [] = mempty | ||
213 | -- j l = join l | ||
214 | |||
215 | --------------------------------------------------------------- | ||
216 | |||
217 | -- instance (NFData a, Storable a) => NFData (Vector a) where | ||
218 | -- rnf = rnf . (@>0) | ||
219 | -- | ||
220 | -- instance (NFData a, Element a) => NFData (Matrix a) where | ||
221 | -- rnf = rnf . flatten | ||
222 | |||
223 | |||
224 | -------------------------------------------------------------------------- | ||
225 | |||