diff options
author | Alberto Ruiz <aruiz@um.es> | 2010-04-23 19:37:56 +0000 |
---|---|---|
committer | Alberto Ruiz <aruiz@um.es> | 2010-04-23 19:37:56 +0000 |
commit | 0ce6e74a5375b8d7ee1d95826252d8ff622f2cb4 (patch) | |
tree | cab666c674543adf0908ea5bc42ec9e9d35a9ea1 /lib/Data | |
parent | f7cbac4bb8d8fc1c4210a548674c222b691f8e9c (diff) |
app5-10, some SCC, and other minor changes
Diffstat (limited to 'lib/Data')
-rw-r--r-- | lib/Data/Packed/Development.hs | 1 | ||||
-rw-r--r-- | lib/Data/Packed/Internal/Common.hs | 31 | ||||
-rw-r--r-- | lib/Data/Packed/Matrix.hs | 15 | ||||
-rw-r--r-- | lib/Data/Packed/Random.hs | 1 |
4 files changed, 27 insertions, 21 deletions
diff --git a/lib/Data/Packed/Development.hs b/lib/Data/Packed/Development.hs index 9f723b4..3eb7552 100644 --- a/lib/Data/Packed/Development.hs +++ b/lib/Data/Packed/Development.hs | |||
@@ -20,6 +20,7 @@ module Data.Packed.Development ( | |||
20 | Adapt, | 20 | Adapt, |
21 | vec, mat, | 21 | vec, mat, |
22 | app1, app2, app3, app4, | 22 | app1, app2, app3, app4, |
23 | app5, app6, app7, app8, app9, app10, | ||
23 | MatrixOrder(..), orderOf, cmat, fmat, | 24 | MatrixOrder(..), orderOf, cmat, fmat, |
24 | unsafeFromForeignPtr, | 25 | unsafeFromForeignPtr, |
25 | unsafeToForeignPtr, | 26 | unsafeToForeignPtr, |
diff --git a/lib/Data/Packed/Internal/Common.hs b/lib/Data/Packed/Internal/Common.hs index 455b176..c348575 100644 --- a/lib/Data/Packed/Internal/Common.hs +++ b/lib/Data/Packed/Internal/Common.hs | |||
@@ -17,6 +17,7 @@ | |||
17 | module Data.Packed.Internal.Common( | 17 | module Data.Packed.Internal.Common( |
18 | Adapt, | 18 | Adapt, |
19 | app1, app2, app3, app4, | 19 | app1, app2, app3, app4, |
20 | app5, app6, app7, app8, app9, app10, | ||
20 | (//), check, mbCatch, | 21 | (//), check, mbCatch, |
21 | splitEvery, common, compatdim, | 22 | splitEvery, common, compatdim, |
22 | fi, | 23 | fi, |
@@ -69,9 +70,15 @@ fi :: Int -> CInt | |||
69 | fi = fromIntegral | 70 | fi = fromIntegral |
70 | 71 | ||
71 | -- hmm.. | 72 | -- hmm.. |
72 | ww2 w1 o1 w2 o2 f = w1 o1 $ \a1 -> w2 o2 $ \a2 -> f a1 a2 | 73 | ww2 w1 o1 w2 o2 f = w1 o1 $ w2 o2 . f |
73 | ww3 w1 o1 w2 o2 w3 o3 f = w1 o1 $ \a1 -> ww2 w2 o2 w3 o3 (f a1) | 74 | ww3 w1 o1 w2 o2 w3 o3 f = w1 o1 $ ww2 w2 o2 w3 o3 . f |
74 | ww4 w1 o1 w2 o2 w3 o3 w4 o4 f = w1 o1 $ \a1 -> ww3 w2 o2 w3 o3 w4 o4 (f a1) | 75 | ww4 w1 o1 w2 o2 w3 o3 w4 o4 f = w1 o1 $ ww3 w2 o2 w3 o3 w4 o4 . f |
76 | ww5 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 f = w1 o1 $ ww4 w2 o2 w3 o3 w4 o4 w5 o5 . f | ||
77 | ww6 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 f = w1 o1 $ ww5 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 . f | ||
78 | ww7 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 f = w1 o1 $ ww6 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 . f | ||
79 | ww8 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 f = w1 o1 $ ww7 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 . f | ||
80 | ww9 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 f = w1 o1 $ ww8 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 . f | ||
81 | ww10 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 f = w1 o1 $ ww9 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 . f | ||
75 | 82 | ||
76 | type Adapt f t r = t -> ((f -> r) -> IO()) -> IO() | 83 | type Adapt f t r = t -> ((f -> r) -> IO()) -> IO() |
77 | 84 | ||
@@ -115,8 +122,22 @@ app1 f w1 o1 s = w1 o1 $ \a1 -> f // a1 // check s | |||
115 | app2 f w1 o1 w2 o2 s = ww2 w1 o1 w2 o2 $ \a1 a2 -> f // a1 // a2 // check s | 122 | app2 f w1 o1 w2 o2 s = ww2 w1 o1 w2 o2 $ \a1 a2 -> f // a1 // a2 // check s |
116 | app3 f w1 o1 w2 o2 w3 o3 s = ww3 w1 o1 w2 o2 w3 o3 $ | 123 | app3 f w1 o1 w2 o2 w3 o3 s = ww3 w1 o1 w2 o2 w3 o3 $ |
117 | \a1 a2 a3 -> f // a1 // a2 // a3 // check s | 124 | \a1 a2 a3 -> f // a1 // a2 // a3 // check s |
118 | app4 f w1 o1 w2 o2 w3 o3 w4 o4 s = ww4 w1 o1 w2 o2 w3 o3 w4 o4 $ | 125 | app4 f w1 o1 w2 o2 w3 o3 w4 o4 s = ww4 w1 o1 w2 o2 w3 o3 w4 o4 $ |
119 | \a1 a2 a3 a4 -> f // a1 // a2 // a3 // a4 // check s | 126 | \a1 a2 a3 a4 -> f // a1 // a2 // a3 // a4 // check s |
127 | app5 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 s = ww5 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 $ | ||
128 | \a1 a2 a3 a4 a5 -> f // a1 // a2 // a3 // a4 // a5 // check s | ||
129 | app6 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 s = ww6 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 $ | ||
130 | \a1 a2 a3 a4 a5 a6 -> f // a1 // a2 // a3 // a4 // a5 // a6 // check s | ||
131 | app7 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 s = ww7 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 $ | ||
132 | \a1 a2 a3 a4 a5 a6 a7 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // check s | ||
133 | app8 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 s = ww8 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 $ | ||
134 | \a1 a2 a3 a4 a5 a6 a7 a8 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // a8 // check s | ||
135 | app9 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 s = ww9 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 $ | ||
136 | \a1 a2 a3 a4 a5 a6 a7 a8 a9 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // a8 // a9 // check s | ||
137 | app10 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 s = ww10 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 $ | ||
138 | \a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // a8 // a9 // a10 // check s | ||
139 | |||
140 | |||
120 | 141 | ||
121 | -- GSL error codes are <= 1024 | 142 | -- GSL error codes are <= 1024 |
122 | -- | error codes for the auxiliary functions required by the wrappers | 143 | -- | error codes for the auxiliary functions required by the wrappers |
@@ -151,7 +172,7 @@ check msg f = do | |||
151 | return () | 172 | return () |
152 | 173 | ||
153 | -- | description of GSL error codes | 174 | -- | description of GSL error codes |
154 | foreign import ccall "auxi.h gsl_strerror" gsl_strerror :: CInt -> IO (Ptr CChar) | 175 | foreign import ccall "gsl_strerror" gsl_strerror :: CInt -> IO (Ptr CChar) |
155 | 176 | ||
156 | -- | Error capture and conversion to Maybe | 177 | -- | Error capture and conversion to Maybe |
157 | mbCatch :: IO x -> IO (Maybe x) | 178 | mbCatch :: IO x -> IO (Maybe x) |
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs index d91a089..4fdd2c6 100644 --- a/lib/Data/Packed/Matrix.hs +++ b/lib/Data/Packed/Matrix.hs | |||
@@ -292,21 +292,6 @@ formatScaled dec t = "E"++show o++"\n" ++ ss | |||
292 | o = floor $ maximum $ map (logBase 10 . abs) $ toList $ flatten t | 292 | o = floor $ maximum $ map (logBase 10 . abs) $ toList $ flatten t |
293 | fmt = '%':show (dec+3) ++ '.':show dec ++"f" | 293 | fmt = '%':show (dec+3) ++ '.':show dec ++"f" |
294 | 294 | ||
295 | {- | Show a vector using a function for showing matrices. | ||
296 | |||
297 | @disp = putStr . vecdisp (dispf 2) | ||
298 | |||
299 | \> disp (linspace 10 (0,1)) | ||
300 | 10 |> 0.00 0.11 0.22 0.33 0.44 0.56 0.67 0.78 0.89 1.00 | ||
301 | @ | ||
302 | -} | ||
303 | vecdisp :: (Element t) => (Matrix t -> String) -> Vector t -> String | ||
304 | vecdisp f v | ||
305 | = ((show (dim v) ++ " |> ") ++) . (++"\n") | ||
306 | . unwords . lines . tail . dropWhile (not . (`elem` " \n")) | ||
307 | . f . trans . reshape 1 | ||
308 | $ v | ||
309 | |||
310 | -- | Tool to display matrices with latex syntax. | 295 | -- | Tool to display matrices with latex syntax. |
311 | latexFormat :: String -- ^ type of braces: \"matrix\", \"bmatrix\", \"pmatrix\", etc. | 296 | latexFormat :: String -- ^ type of braces: \"matrix\", \"bmatrix\", \"pmatrix\", etc. |
312 | -> String -- ^ Formatted matrix, with elements separated by spaces and newlines | 297 | -> String -- ^ Formatted matrix, with elements separated by spaces and newlines |
diff --git a/lib/Data/Packed/Random.hs b/lib/Data/Packed/Random.hs index 7e0f91f..260e4dc 100644 --- a/lib/Data/Packed/Random.hs +++ b/lib/Data/Packed/Random.hs | |||
@@ -48,7 +48,6 @@ uniformSample :: Int -- ^ seed | |||
48 | uniformSample seed n rgs = m where | 48 | uniformSample seed n rgs = m where |
49 | (as,bs) = unzip rgs | 49 | (as,bs) = unzip rgs |
50 | a = fromList as | 50 | a = fromList as |
51 | b = fromList bs | ||
52 | cs = zipWith subtract as bs | 51 | cs = zipWith subtract as bs |
53 | d = dim a | 52 | d = dim a |
54 | dat = toRows $ reshape n $ randomVector seed Uniform (n*d) | 53 | dat = toRows $ reshape n $ randomVector seed Uniform (n*d) |